mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-28 15:53:00 +00:00
Get batting thickness from decorator data
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
|
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
import ifcopenshell.util.element
|
||||||
import ifcopenshell.util.representation
|
import ifcopenshell.util.representation
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ def refresh():
|
|||||||
SheetsData.is_loaded = False
|
SheetsData.is_loaded = False
|
||||||
SchedulesData.is_loaded = False
|
SchedulesData.is_loaded = False
|
||||||
DrawingsData.is_loaded = False
|
DrawingsData.is_loaded = False
|
||||||
|
DecoratorData.data = {}
|
||||||
|
|
||||||
|
|
||||||
class ProductAssignmentsData:
|
class ProductAssignmentsData:
|
||||||
@@ -121,3 +123,19 @@ class SchedulesData:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def total_schedules(cls):
|
def total_schedules(cls):
|
||||||
return len([d for d in tool.Ifc.get().by_type("IfcDocumentInformation") if d.Scope == "SCHEDULE"])
|
return len([d for d in tool.Ifc.get().by_type("IfcDocumentInformation") if d.Scope == "SCHEDULE"])
|
||||||
|
|
||||||
|
|
||||||
|
class DecoratorData:
|
||||||
|
data = {}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_batting_thickness(cls, obj):
|
||||||
|
result = cls.data.get(obj.name, None)
|
||||||
|
if result is not None:
|
||||||
|
return result
|
||||||
|
element = tool.Ifc.get_entity(obj)
|
||||||
|
if element:
|
||||||
|
result = ifcopenshell.util.element.get_pset(element, "BBIM_Batting", "Thickness") or 5.0
|
||||||
|
cls.data[obj.name] = result
|
||||||
|
return result
|
||||||
|
return 5.0
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import bmesh
|
|||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
import blenderbim.bim.module.drawing.helper as helper
|
import blenderbim.bim.module.drawing.helper as helper
|
||||||
|
from math import acos, pi
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
from bpy.types import SpaceView3D
|
from bpy.types import SpaceView3D
|
||||||
@@ -33,7 +34,7 @@ from mathutils import Vector, Matrix
|
|||||||
from bpy_extras.view3d_utils import location_3d_to_region_2d
|
from bpy_extras.view3d_utils import location_3d_to_region_2d
|
||||||
from gpu.types import GPUShader, GPUBatch, GPUIndexBuf, GPUVertBuf, GPUVertFormat
|
from gpu.types import GPUShader, GPUBatch, GPUIndexBuf, GPUVertBuf, GPUVertFormat
|
||||||
from gpu_extras.batch import batch_for_shader
|
from gpu_extras.batch import batch_for_shader
|
||||||
from math import acos, pi
|
from blenderbim.bim.module.drawing.data import DecoratorData
|
||||||
|
|
||||||
|
|
||||||
def ccw(A, B, C):
|
def ccw(A, B, C):
|
||||||
@@ -1423,7 +1424,13 @@ class BattingDecorator(BaseDecorator):
|
|||||||
verts, idxs = self.get_editmesh_geom(obj)
|
verts, idxs = self.get_editmesh_geom(obj)
|
||||||
else:
|
else:
|
||||||
verts, idxs = self.get_mesh_geom(obj)
|
verts, idxs = self.get_mesh_geom(obj)
|
||||||
self.draw_lines(context, obj, verts[:2], idxs, extra_float_kwargs={"batting_thickness": 32.0})
|
self.draw_lines(
|
||||||
|
context,
|
||||||
|
obj,
|
||||||
|
verts[:2],
|
||||||
|
idxs,
|
||||||
|
extra_float_kwargs={"batting_thickness": DecoratorData.get_batting_thickness(obj)},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class GridDecorator(BaseDecorator):
|
class GridDecorator(BaseDecorator):
|
||||||
|
|||||||
Reference in New Issue
Block a user