Support Forum

Union Polyhedron3D und BRep3D


Kann es sein, dass eine union von Polyhedron3D und BRep3D gar nicht unterstützt wird? Wenn ich zwei Polyhedron3D oder zwei BRep3D verwende funktioniert es wunderbar.

kurz:

NemAll_Python_Geometry.MakeUnion(Polyhedron3D, BRep3D)
did not match C++ signature:
    MakeUnion(class Allplan::Geometry::BRep3D brep1, class std::vector > breps)
    MakeUnion(class Allplan::Geometry::BRep3D brep1, class Allplan::Geometry::BRep3D brep2)
    MakeUnion(class Allplan::Geometry::Polyhedron3D polyhed1, class Allplan::Geometry::Polyhedron3D polyhed2)
    MakeUnion(class Allplan::Geometry::Polygon2D poly1, class Allplan::Geometry::Polygon2D poly2)
TypeError: 'NoneType' object is not callable

komplettes log:

###############################################################
###############################################################
BEGINN
###############################################################
Load bolts.py
Load BuildingElementInput.py

Create common string table:

BuildingElement Stringtable read file: C:\ProgramData\Nemetschek\Allplan\2016\Etc\PythonPartsScripts\GeneralScripts\Stringtable\BuildingElement_eng.xml
build_ele = xml_ele.read_element_parameter(file_name)C:\Users\bhb\Desktop\pp\bolts.pyp
BuildingElementXML read_element_parameter:  C:\Users\bhb\Desktop\pp\bolts.pyp
BuildingElement Stringtable read file: C:\Users\bhb\Desktop\pp\bolts_eng.xml

read file: C:\Users\bhb\Desktop\pp\bolts_eng.xml not found

Script =  bhb\bolts
<class 'NemAll_Python_Geometry.Polyhedron3D'>
<class 'NemAll_Python_Geometry.BRep3D'>
Traceback (most recent call last):
  File "C:\ProgramData\Nemetschek\Allplan\2016\Etc\PythonPartsScripts\GeneralScripts\BuildingElementInput.py", line 457, in create_element
    self.last_input_doc)
  File "\\HEASRV01\Daten\NEM\Allplan\Std\PythonPartsScripts\bhb\bolts.py", line 50, in create_element
    return element.create(build_ele)
  File "\\HEASRV01\Daten\NEM\Allplan\Std\PythonPartsScripts\bhb\bolts.py", line 83, in create
    self.make_polyhedron(build_ele)
  File "\\HEASRV01\Daten\NEM\Allplan\Std\PythonPartsScripts\bhb\bolts.py", line 175, in make_polyhedron
    err, polyhedron = AllplanGeo.MakeUnion(polyhed, brep)
Boost.Python.ArgumentError: Python argument types in
    NemAll_Python_Geometry.MakeUnion(Polyhedron3D, BRep3D)
did not match C++ signature:
    MakeUnion(class Allplan::Geometry::BRep3D brep1, class std::vector<class Allplan::Geometry::BRep3D,class std::allocator<class Allplan::Geometry::BRep3D> > b
reps)
    MakeUnion(class Allplan::Geometry::BRep3D brep1, class Allplan::Geometry::BRep3D brep2)
    MakeUnion(class Allplan::Geometry::Polyhedron3D polyhed1, class Allplan::Geometry::Polyhedron3D polyhed2)
    MakeUnion(class Allplan::Geometry::Polygon2D poly1, class Allplan::Geometry::Polygon2D poly2)
TypeError: 'NoneType' object is not callable
kgaup3: Elemente aus folgendem Programmbereich sind da:
kgaup3: PRGBER_ELEM_RU3D 0
kgaup3: PRGBER_ELEM_FEMBEL 0
kgaup3: PRGBER_ELEM_PLAN 0
kgaup3: PRGBER_ELEM_FEMRAS 0
kgaup3: PRGBER_ELEM_ARCH 1
kgaup3: PRGBER_ELEM_FEMSYS 0
kgaup3: PRGBER_ELEM_VERM 0
kgaup3: PRGBER_ELEM_KURV 0
kgaup3: PRGBER_ELEM_LIST 0
kgaup3: PRGBER_ELEM_DGM 0
kgaup3: PRGBER_ELEM_SCHA 0
kgaup3: PRGBER_ELEM_LEIT 0
kgaup3: PRGBER_ELEM_FEMPLATTE 1
kgaup3: PRGBER_ELEM_FEMSCHEIBE 0
kgaup3: PRGBER_ELEM_VIEWSSECTIONS 0
kgaup3: Teilbild erhaelt Kenner TBTYP_ALLG = 0
ztbsv: enter saving nr=106 typ=1 docid=1
zgztbw: fm_dirty_flag:0 FM_Flags: 2
tb000106.ndw: VersionCounter++ (36)
ztbsv: err=0
gdiObjs=00952 usrObjs=00838 @ Fri Mar 11 10:07:28 2016
EVENT_EXS_PYP_IMPORT 128867 0

BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a

Hallo,

ich würde das Polyhedron3D in einen BRep3D konvertieren.
Es gibt eine Funktion CreateBRep, die als Argument ein Polyhedron akzeptiert....

Gruß Jörg

Danke Jörg, genau so eine Konvertierungsfunktion hatte ich gesucht, dass ich einfach ein BRep erstelle und da ein Polyhedron übergebe, darauf bin ich nich gekommen. : bang: Gut zu wissen für später !

Habs aber in der Zeit anders gemacht. Da die union eh ein BRep ergibt, habe ich den Polyhedron einfach gleich als BRep erzeugt, und nicht erst als Polyhedron erzeugt und dann nach BRep konvertiert.

Mit so einer API arbeiten muss ich echt noch lernen. Ich verbringe irgendwie die meiste Zeit mit suchen in der API. Ich bin es gewohnt an Hand von Beispielen zu programmieren. Naja ist halt ne für mich neue API.

BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a