mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-28 19:27:10 +00:00
Add support for 3D curve / wireframe representations.
This commit is contained in:
@@ -117,6 +117,7 @@ class AddRepresentation(bpy.types.Operator):
|
|||||||
if s.material and not s.material.BIMMaterialProperties.ifc_style_id
|
if s.material and not s.material.BIMMaterialProperties.ifc_style_id
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if isinstance(obj.data, bpy.types.Mesh) and len(obj.data.polygons):
|
||||||
ifcopenshell.api.run(
|
ifcopenshell.api.run(
|
||||||
"style.assign_representation_styles",
|
"style.assign_representation_styles",
|
||||||
self.file,
|
self.file,
|
||||||
@@ -330,6 +331,7 @@ class UpdateRepresentation(bpy.types.Operator):
|
|||||||
if s.material and not s.material.BIMMaterialProperties.ifc_style_id
|
if s.material and not s.material.BIMMaterialProperties.ifc_style_id
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if isinstance(obj.data, bpy.types.Mesh) and len(obj.data.polygons):
|
||||||
ifcopenshell.api.run(
|
ifcopenshell.api.run(
|
||||||
"style.assign_representation_styles",
|
"style.assign_representation_styles",
|
||||||
self.file,
|
self.file,
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ class Usecase:
|
|||||||
"unit_scale": None, # A scale factor to apply for all vectors in case the unit is different
|
"unit_scale": None, # A scale factor to apply for all vectors in case the unit is different
|
||||||
"should_force_faceted_brep": False, # If we should force faceted breps for meshes
|
"should_force_faceted_brep": False, # If we should force faceted breps for meshes
|
||||||
"should_force_triangulation": False, # If we should force triangulation for meshes
|
"should_force_triangulation": False, # If we should force triangulation for meshes
|
||||||
"is_wireframe": False, # If the geometry is a wireframe
|
|
||||||
"is_curve": False, # If the geometry is a Blender curve
|
|
||||||
"is_point_cloud": False, # If the geometry is a point cloud
|
"is_point_cloud": False, # If the geometry is a point cloud
|
||||||
# Possible IFC representation classes:
|
# Possible IFC representation classes:
|
||||||
# IfcExtrudedAreaSolid/IfcRectangleProfileDef
|
# IfcExtrudedAreaSolid/IfcRectangleProfileDef
|
||||||
@@ -204,9 +202,9 @@ class Usecase:
|
|||||||
)
|
)
|
||||||
|
|
||||||
def create_variable_representation(self):
|
def create_variable_representation(self):
|
||||||
if self.settings["is_wireframe"]:
|
if isinstance(self.settings["geometry"], bpy.types.Curve):
|
||||||
return self.create_wireframe_representation()
|
return self.create_curve3d_representation()
|
||||||
elif self.settings["is_curve"]:
|
elif not len(self.settings["geometry"].polygons):
|
||||||
return self.create_curve3d_representation()
|
return self.create_curve3d_representation()
|
||||||
elif self.settings["is_point_cloud"]:
|
elif self.settings["is_point_cloud"]:
|
||||||
return self.create_point_cloud_representation()
|
return self.create_point_cloud_representation()
|
||||||
|
|||||||
Reference in New Issue
Block a user