Code: Select all
class py_object:
"""Base class for all blenderbim objects"""
def onChanged(self, obj, prop):
return
def attach(self, obj):
obj.addExtension("App::GroupExtensionPython")
def __getstate__(self):
return None
def __setstate__(self, state):
return None
def execute (self, obj):
pass
class py_vp_object:
"""Base class for all blenderbim view providers"""
def attach(self, vobj):
self.Object = vobj.Object
vobj.addExtension("Gui::ViewProviderGroupExtensionPython")
def getDisplayModes(self, obj):
return []
def getDefaultDisplayMode(self):
return "FlatLines"
def setDisplayMode(self,mode):
return mode
def onChanged(self, vobj, prop):
return
def updateData(self, obj, prop):
return
def __getstate__(self):
return None
def __setstate__(self, state):
return None
obj0 = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'IfcObject', py_object(), py_vp_object(), True)
obj0.Shape = Part.Shape(Part.makeBox(1,1,1))
obj1 = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'IfcObject', py_object(), py_vp_object(), True)
obj1.Shape = Part.Shape(Part.makeCylinder(0.5,3))
obj2 = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', 'IfcObject', py_object(), py_vp_object(), True)
obj2.addObject(obj1)
obj1.addObject(obj0)
App.ActiveDocument.IfcObject002.Shape.isNull() returns True
But it is represented on the scene and is selectable!