mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 14:38:05 +00:00
Directly use entity doc functions instead of wrappers
This commit is contained in:
@@ -17,7 +17,9 @@
|
|||||||
# 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
|
||||||
from blenderbim.bim.prop import StrProperty, Attribute, get_ifc_entity_description
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
|
import blenderbim.tool as tool
|
||||||
|
from blenderbim.bim.prop import Attribute
|
||||||
from bpy.types import PropertyGroup
|
from bpy.types import PropertyGroup
|
||||||
from bpy.props import (
|
from bpy.props import (
|
||||||
PointerProperty,
|
PointerProperty,
|
||||||
@@ -32,7 +34,8 @@ from bpy.props import (
|
|||||||
|
|
||||||
|
|
||||||
def get_available_constraint_types(self, context):
|
def get_available_constraint_types(self, context):
|
||||||
return [(c, c, get_ifc_entity_description(c)) for c in ["IfcObjective"]]
|
version = tool.Ifc.get_schema()
|
||||||
|
return [(c, c, get_entity_doc(version, c).get("description", "")) for c in ["IfcObjective"]]
|
||||||
|
|
||||||
|
|
||||||
class Constraint(PropertyGroup):
|
class Constraint(PropertyGroup):
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import bpy
|
|||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.util.schema
|
import ifcopenshell.util.schema
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description
|
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -66,9 +65,12 @@ class MaterialsData:
|
|||||||
"IfcMaterialProfileSet",
|
"IfcMaterialProfileSet",
|
||||||
"IfcMaterialList",
|
"IfcMaterialList",
|
||||||
]
|
]
|
||||||
if tool.Ifc.get_schema() == "IFC2X3":
|
version = tool.Ifc.get_schema()
|
||||||
|
if version == "IFC2X3":
|
||||||
material_types = ["IfcMaterial", "IfcMaterialLayerSet", "IfcMaterialList"]
|
material_types = ["IfcMaterial", "IfcMaterialLayerSet", "IfcMaterialList"]
|
||||||
return [(m, m, get_ifc_entity_description(m)) for m in material_types]
|
return [
|
||||||
|
(m, m, ifcopenshell.util.doc.get_entity_doc(version, m).get("description", "")) for m in material_types
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class ObjectMaterialData:
|
class ObjectMaterialData:
|
||||||
|
|||||||
@@ -17,10 +17,12 @@
|
|||||||
# 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
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
from ifcopenshell.api.material.data import Data
|
from ifcopenshell.api.material.data import Data
|
||||||
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.module.material.data import MaterialsData, ObjectMaterialData
|
from blenderbim.bim.module.material.data import MaterialsData, ObjectMaterialData
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from blenderbim.bim.prop import StrProperty, Attribute, get_ifc_entity_description
|
from blenderbim.bim.prop import StrProperty, Attribute
|
||||||
from bpy.types import PropertyGroup
|
from bpy.types import PropertyGroup
|
||||||
from bpy.props import (
|
from bpy.props import (
|
||||||
PointerProperty,
|
PointerProperty,
|
||||||
@@ -50,9 +52,11 @@ def purge():
|
|||||||
def get_profile_classes(self, context):
|
def get_profile_classes(self, context):
|
||||||
global profileclasses_enum
|
global profileclasses_enum
|
||||||
if len(profileclasses_enum) == 0 and IfcStore.get_schema():
|
if len(profileclasses_enum) == 0 and IfcStore.get_schema():
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
profileclasses_enum.clear()
|
profileclasses_enum.clear()
|
||||||
profileclasses_enum = [
|
profileclasses_enum = [
|
||||||
(t.name(), t.name(), get_ifc_entity_description(t.name())) for t in IfcStore.get_schema().declaration_by_name("IfcProfileDef").subtypes()
|
(t.name(), t.name(), get_entity_doc(version, t.name()).get("description", ""))
|
||||||
|
for t in IfcStore.get_schema().declaration_by_name("IfcProfileDef").subtypes()
|
||||||
]
|
]
|
||||||
return profileclasses_enum
|
return profileclasses_enum
|
||||||
|
|
||||||
@@ -60,15 +64,16 @@ def get_profile_classes(self, context):
|
|||||||
def get_parameterized_profile_classes(self, context):
|
def get_parameterized_profile_classes(self, context):
|
||||||
global parameterizedprofileclasses_enum
|
global parameterizedprofileclasses_enum
|
||||||
if len(parameterizedprofileclasses_enum) == 0 and IfcStore.get_schema():
|
if len(parameterizedprofileclasses_enum) == 0 and IfcStore.get_schema():
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
parameterizedprofileclasses_enum.clear()
|
parameterizedprofileclasses_enum.clear()
|
||||||
parameterizedprofileclasses_enum = [
|
parameterizedprofileclasses_enum = [
|
||||||
(t.name(), t.name(), get_ifc_entity_description(t.name()))
|
(t.name(), t.name(), get_entity_doc(version, t.name()).get("description", ""))
|
||||||
for t in IfcStore.get_schema().declaration_by_name("IfcParameterizedProfileDef").subtypes()
|
for t in IfcStore.get_schema().declaration_by_name("IfcParameterizedProfileDef").subtypes()
|
||||||
]
|
]
|
||||||
for ifc_class in parameterizedprofileclasses_enum:
|
for ifc_class in parameterizedprofileclasses_enum:
|
||||||
parameterizedprofileclasses_enum.extend(
|
parameterizedprofileclasses_enum.extend(
|
||||||
[
|
[
|
||||||
(t.name(), t.name(), get_ifc_entity_description(t.name()))
|
(t.name(), t.name(), get_entity_doc(version, t.name()).get("description", ""))
|
||||||
for t in IfcStore.get_schema().declaration_by_name(ifc_class[0]).subtypes() or []
|
for t in IfcStore.get_schema().declaration_by_name(ifc_class[0]).subtypes() or []
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -93,10 +98,11 @@ def get_object_material_types(self, context):
|
|||||||
"IfcMaterialProfileSetUsage",
|
"IfcMaterialProfileSetUsage",
|
||||||
"IfcMaterialList",
|
"IfcMaterialList",
|
||||||
]
|
]
|
||||||
if IfcStore.get_file().schema == "IFC2X3":
|
version = tool.Ifc.get_schema()
|
||||||
|
if version == "IFC2X3":
|
||||||
material_types = ["IfcMaterial", "IfcMaterialLayerSet", "IfcMaterialLayerSetUsage", "IfcMaterialList"]
|
material_types = ["IfcMaterial", "IfcMaterialLayerSet", "IfcMaterialLayerSetUsage", "IfcMaterialList"]
|
||||||
materialtypes_enum.clear()
|
materialtypes_enum.clear()
|
||||||
materialtypes_enum = [(m, m, get_ifc_entity_description(m)) for m in material_types]
|
materialtypes_enum = [(m, m, get_entity_doc(version, m).get("description", "")) for m in material_types]
|
||||||
return materialtypes_enum
|
return materialtypes_enum
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,11 @@ import json
|
|||||||
import functools
|
import functools
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from blenderbim.bim.module.model.root import ConstrTypeEntityNotFound
|
from blenderbim.bim.module.model.root import ConstrTypeEntityNotFound
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description, get_predefined_type_description
|
from blenderbim.bim.prop import get_predefined_type_description
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -64,7 +65,8 @@ class AuthoringData:
|
|||||||
declarations = ifcopenshell.util.schema.get_subtypes(declaration)
|
declarations = ifcopenshell.util.schema.get_subtypes(declaration)
|
||||||
names = [d.name() for d in declarations]
|
names = [d.name() for d in declarations]
|
||||||
names.extend(("IfcDoorStyle", "IfcWindowStyle"))
|
names.extend(("IfcDoorStyle", "IfcWindowStyle"))
|
||||||
return [(c, c, get_ifc_entity_description(c)) for c in sorted(names)]
|
version = tool.Ifc.get_schema()
|
||||||
|
return [(c, c, get_entity_doc(version, c).get("description", "")) for c in sorted(names)]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def type_predefined_type(cls):
|
def type_predefined_type(cls):
|
||||||
|
|||||||
@@ -17,7 +17,9 @@
|
|||||||
# 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
|
||||||
from blenderbim.bim.prop import StrProperty, Attribute, get_ifc_entity_description
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
|
import blenderbim.tool as tool
|
||||||
|
from blenderbim.bim.prop import StrProperty, Attribute
|
||||||
from blenderbim.bim.module.owner.data import OwnerData, ActorData, ObjectActorData
|
from blenderbim.bim.module.owner.data import OwnerData, ActorData, ObjectActorData
|
||||||
from bpy.types import PropertyGroup
|
from bpy.types import PropertyGroup
|
||||||
from bpy.props import (
|
from bpy.props import (
|
||||||
@@ -65,17 +67,19 @@ def update_actor_class(self, context):
|
|||||||
|
|
||||||
|
|
||||||
def get_actor_class_enum(self, context):
|
def get_actor_class_enum(self, context):
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
return [
|
return [
|
||||||
("IfcActor", "Actor", get_ifc_entity_description("IfcActor")),
|
("IfcActor", "Actor", get_entity_doc(version, "IfcActor").get("description", "")),
|
||||||
("IfcOccupant", "Occupant", get_ifc_entity_description("IfcOccupant")),
|
("IfcOccupant", "Occupant", get_entity_doc(version, "IfcOccupant").get("description", "")),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_actor_type_enum(self, context):
|
def get_actor_type_enum(self, context):
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
return [
|
return [
|
||||||
("IfcPerson", "Person", get_ifc_entity_description("IfcPerson")),
|
("IfcPerson", "Person", get_entity_doc(version, "IfcPerson").get("description", "")),
|
||||||
("IfcOrganization", "Organisation", get_ifc_entity_description("IfcOrganization")),
|
("IfcOrganization", "Organisation", get_entity_doc(version, "IfcOrganization").get("description", "")),
|
||||||
("IfcPersonAndOrganization", "User", get_ifc_entity_description("IfcPersonAndOrganization")),
|
("IfcPersonAndOrganization", "User", get_entity_doc(version, "IfcPersonAndOrganization").get("description", "")),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -175,6 +175,6 @@ class AddEditCustomPropertiesData:
|
|||||||
schema = tool.Ifc.schema()
|
schema = tool.Ifc.schema()
|
||||||
version = tool.Ifc.get_schema()
|
version = tool.Ifc.get_schema()
|
||||||
return [
|
return [
|
||||||
(t, t, ifcopenshell.util.doc.get_type_doc(version, t).get("description"))
|
(t, t, ifcopenshell.util.doc.get_type_doc(version, t).get("description", ""))
|
||||||
for t in sorted([d.name() for d in schema.declarations() if hasattr(d, "declared_type")])
|
for t in sorted([d.name() for d in schema.declarations() if hasattr(d, "declared_type")])
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ def get_qto_names(self, context):
|
|||||||
def get_template_type(self, context):
|
def get_template_type(self, context):
|
||||||
version = tool.Ifc.get_schema()
|
version = tool.Ifc.get_schema()
|
||||||
for t in ("IfcPropertySingleValue", "IfcPropertyEnumeratedValue"):
|
for t in ("IfcPropertySingleValue", "IfcPropertyEnumeratedValue"):
|
||||||
yield (t, t, ifcopenshell.util.doc.get_entity_doc(version, t).get("description"))
|
yield (t, t, ifcopenshell.util.doc.get_entity_doc(version, t).get("description", ""))
|
||||||
|
|
||||||
|
|
||||||
def get_primary_measure_type(self, context):
|
def get_primary_measure_type(self, context):
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import bpy
|
|||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description
|
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -46,7 +45,7 @@ class PsetTemplatesData:
|
|||||||
schema = tool.Ifc.schema()
|
schema = tool.Ifc.schema()
|
||||||
version = tool.Ifc.get_schema()
|
version = tool.Ifc.get_schema()
|
||||||
return [
|
return [
|
||||||
(t, t, ifcopenshell.util.doc.get_type_doc(version, t).get("description"))
|
(t, t, ifcopenshell.util.doc.get_type_doc(version, t).get("description", ""))
|
||||||
for t in sorted([d.name() for d in schema.declarations() if hasattr(d, "declared_type")])
|
for t in sorted([d.name() for d in schema.declarations() if hasattr(d, "declared_type")])
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,10 @@
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
import bpy
|
import bpy
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description, get_predefined_type_description
|
from blenderbim.bim.prop import get_predefined_type_description
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -57,7 +58,8 @@ class IfcClassData:
|
|||||||
"IfcAnnotation",
|
"IfcAnnotation",
|
||||||
"IfcRelSpaceBoundary",
|
"IfcRelSpaceBoundary",
|
||||||
]
|
]
|
||||||
if tool.Ifc.get_schema() == "IFC2X3":
|
version = tool.Ifc.get_schema()
|
||||||
|
if version == "IFC2X3":
|
||||||
products = [
|
products = [
|
||||||
"IfcElement",
|
"IfcElement",
|
||||||
"IfcElementType",
|
"IfcElementType",
|
||||||
@@ -67,7 +69,7 @@ class IfcClassData:
|
|||||||
"IfcAnnotation",
|
"IfcAnnotation",
|
||||||
"IfcRelSpaceBoundary",
|
"IfcRelSpaceBoundary",
|
||||||
]
|
]
|
||||||
return [(e, e, get_ifc_entity_description(e)) for e in products]
|
return [(e, e, get_entity_doc(version, e).get("description", "")) for e in products]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def ifc_classes(cls):
|
def ifc_classes(cls):
|
||||||
@@ -77,7 +79,8 @@ class IfcClassData:
|
|||||||
names = [d.name() for d in declarations]
|
names = [d.name() for d in declarations]
|
||||||
if ifc_product == "IfcElementType":
|
if ifc_product == "IfcElementType":
|
||||||
names.extend(("IfcDoorStyle", "IfcWindowStyle"))
|
names.extend(("IfcDoorStyle", "IfcWindowStyle"))
|
||||||
return [(c, c, get_ifc_entity_description(c)) for c in sorted(names)]
|
version = tool.Ifc.get_schema()
|
||||||
|
return [(c, c, get_entity_doc(version, c).get("description", "")) for c in sorted(names)]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def ifc_predefined_types(cls):
|
def ifc_predefined_types(cls):
|
||||||
|
|||||||
@@ -16,11 +16,13 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# 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
|
|
||||||
from blenderbim.bim.ifc import IfcStore
|
|
||||||
from math import radians
|
from math import radians
|
||||||
from blenderbim.bim.prop import StrProperty, Attribute, get_ifc_entity_description
|
import bpy
|
||||||
from ifcopenshell.api.structural.data import Data
|
from ifcopenshell.api.structural.data import Data
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
|
import blenderbim.tool as tool
|
||||||
|
from blenderbim.bim.ifc import IfcStore
|
||||||
|
from blenderbim.bim.prop import StrProperty, Attribute
|
||||||
from bpy.types import PropertyGroup
|
from bpy.types import PropertyGroup
|
||||||
from bpy.props import (
|
from bpy.props import (
|
||||||
PointerProperty,
|
PointerProperty,
|
||||||
@@ -89,8 +91,12 @@ def get_structural_load_types(self, context):
|
|||||||
file = IfcStore.get_file()
|
file = IfcStore.get_file()
|
||||||
if len(structuralloadtypes_enum) < 1 and file:
|
if len(structuralloadtypes_enum) < 1 and file:
|
||||||
declaration = IfcStore.get_schema().declaration_by_name("IfcStructuralLoadStatic")
|
declaration = IfcStore.get_schema().declaration_by_name("IfcStructuralLoadStatic")
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
structuralloadtypes_enum.extend(
|
structuralloadtypes_enum.extend(
|
||||||
[(d.name(), d.name(), get_ifc_entity_description(d.name())) for d in declaration.subtypes()]
|
[
|
||||||
|
(d.name(), d.name(), get_entity_doc(version, d.name()).get("description", ""))
|
||||||
|
for d in declaration.subtypes()
|
||||||
|
]
|
||||||
)
|
)
|
||||||
return structuralloadtypes_enum
|
return structuralloadtypes_enum
|
||||||
|
|
||||||
@@ -99,8 +105,10 @@ def get_boundary_condition_types(self, context):
|
|||||||
file = IfcStore.get_file()
|
file = IfcStore.get_file()
|
||||||
if file:
|
if file:
|
||||||
declaration = IfcStore.get_schema().declaration_by_name("IfcBoundaryCondition")
|
declaration = IfcStore.get_schema().declaration_by_name("IfcBoundaryCondition")
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
boundaryconditiontypes_enum = [
|
boundaryconditiontypes_enum = [
|
||||||
(d.name(), d.name(), get_ifc_entity_description(d.name())) for d in declaration.subtypes()
|
(d.name(), d.name(), get_entity_doc(version, d.name()).get("description", ""))
|
||||||
|
for d in declaration.subtypes()
|
||||||
]
|
]
|
||||||
return boundaryconditiontypes_enum
|
return boundaryconditiontypes_enum
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -17,9 +17,9 @@
|
|||||||
# 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 blenderbim.tool as tool
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
|
import blenderbim.tool as tool
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -39,7 +39,10 @@ class StylesData:
|
|||||||
def style_types(cls):
|
def style_types(cls):
|
||||||
declaration = tool.Ifc.schema().declaration_by_name("IfcPresentationStyle")
|
declaration = tool.Ifc.schema().declaration_by_name("IfcPresentationStyle")
|
||||||
declarations = ifcopenshell.util.schema.get_subtypes(declaration)
|
declarations = ifcopenshell.util.schema.get_subtypes(declaration)
|
||||||
return [(c, c, get_ifc_entity_description(c)) for c in sorted([d.name() for d in declarations])]
|
version = tool.Ifc.get_schema()
|
||||||
|
return [
|
||||||
|
(c, c, get_entity_doc(version, c).get("description", "")) for c in sorted([d.name() for d in declarations])
|
||||||
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def total_styles(cls):
|
def total_styles(cls):
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
import bpy
|
import bpy
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.util.schema
|
import ifcopenshell.util.schema
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description
|
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -45,9 +45,10 @@ class SystemData:
|
|||||||
def system_class(cls):
|
def system_class(cls):
|
||||||
declaration = tool.Ifc.schema().declaration_by_name("IfcSystem")
|
declaration = tool.Ifc.schema().declaration_by_name("IfcSystem")
|
||||||
declarations = ifcopenshell.util.schema.get_subtypes(declaration)
|
declarations = ifcopenshell.util.schema.get_subtypes(declaration)
|
||||||
|
version = tool.Ifc.get_schema()
|
||||||
# We're only interested in systems for services. Not sure why IFC groups these together.
|
# We're only interested in systems for services. Not sure why IFC groups these together.
|
||||||
return [
|
return [
|
||||||
(c, c, get_ifc_entity_description(c))
|
(c, c, get_entity_doc(version, c).get("description", ""))
|
||||||
for c in sorted([d.name() for d in declarations])
|
for c in sorted([d.name() for d in declarations])
|
||||||
if c not in ("IfcZone", "IfcStructuralAnalysisModel")
|
if c not in ("IfcZone", "IfcStructuralAnalysisModel")
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
import bpy
|
import bpy
|
||||||
import ifcopenshell.util.type
|
import ifcopenshell.util.type
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description
|
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -54,8 +54,9 @@ class TypeData:
|
|||||||
element = tool.Ifc.get_entity(obj)
|
element = tool.Ifc.get_entity(obj)
|
||||||
if not element:
|
if not element:
|
||||||
return []
|
return []
|
||||||
types = ifcopenshell.util.type.get_applicable_types(element.is_a(), schema=tool.Ifc.get_schema())
|
version = tool.Ifc.get_schema()
|
||||||
results.extend((t, t, get_ifc_entity_description(t)) for t in types)
|
types = ifcopenshell.util.type.get_applicable_types(element.is_a(), schema=version)
|
||||||
|
results.extend((t, t, get_entity_doc(version, t).get("description", "")) for t in types)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -87,7 +88,4 @@ class TypeData:
|
|||||||
element = tool.Ifc.get_entity(bpy.context.active_object)
|
element = tool.Ifc.get_entity(bpy.context.active_object)
|
||||||
element_type = ifcopenshell.util.element.get_type(element)
|
element_type = ifcopenshell.util.element.get_type(element)
|
||||||
if element_type:
|
if element_type:
|
||||||
return {
|
return {"id": element_type.id(), "name": f"{element_type.is_a()}/{element_type.Name or 'Unnamed'}"}
|
||||||
"id": element_type.id(),
|
|
||||||
"name":f"{element_type.is_a()}/{element_type.Name or 'Unnamed'}"
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ import ifcopenshell
|
|||||||
import ifcopenshell.util.unit
|
import ifcopenshell.util.unit
|
||||||
import ifcopenshell.util.schema
|
import ifcopenshell.util.schema
|
||||||
import ifcopenshell.util.attribute
|
import ifcopenshell.util.attribute
|
||||||
|
from ifcopenshell.util.doc import get_entity_doc
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
from blenderbim.bim.prop import get_ifc_entity_description
|
|
||||||
|
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
@@ -45,8 +45,20 @@ class UnitsData:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def unit_classes(cls):
|
def unit_classes(cls):
|
||||||
declarations = ifcopenshell.util.schema.get_subtypes(tool.Ifc.schema().declaration_by_name("IfcNamedUnit"))
|
declarations = ifcopenshell.util.schema.get_subtypes(tool.Ifc.schema().declaration_by_name("IfcNamedUnit"))
|
||||||
results = [(c, c, get_ifc_entity_description(c)) for c in sorted([d.name() for d in declarations])]
|
version = tool.Ifc.get_schema()
|
||||||
results.extend([("IfcDerivedUnit", "IfcDerivedUnit", ""), ("IfcMonetaryUnit", "IfcMonetaryUnit", "")])
|
results = [
|
||||||
|
(c, c, get_entity_doc(version, c).get("description", "")) for c in sorted([d.name() for d in declarations])
|
||||||
|
]
|
||||||
|
results.extend(
|
||||||
|
[
|
||||||
|
("IfcDerivedUnit", "IfcDerivedUnit", get_entity_doc(version, "IfcDerivedUnit").get("description", "")),
|
||||||
|
(
|
||||||
|
"IfcMonetaryUnit",
|
||||||
|
"IfcMonetaryUnit",
|
||||||
|
get_entity_doc(version, "IfcMonetaryUnit").get("description", ""),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import blenderbim.tool as tool
|
|||||||
from . import schema
|
from . import schema
|
||||||
from blenderbim.bim import import_ifc
|
from blenderbim.bim import import_ifc
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from blenderbim.bim.prop import StrProperty, get_ifc_entity_doc_url
|
from blenderbim.bim.prop import StrProperty
|
||||||
from blenderbim.bim.ui import IFCFileSelector
|
from blenderbim.bim.ui import IFCFileSelector
|
||||||
from blenderbim.bim.helper import get_enum_items
|
from blenderbim.bim.helper import get_enum_items
|
||||||
from mathutils import Vector, Matrix, Euler
|
from mathutils import Vector, Matrix, Euler
|
||||||
@@ -706,7 +706,9 @@ class BIM_OT_show_description(bpy.types.Operator):
|
|||||||
wrapper = textwrap.TextWrapper(width=80)
|
wrapper = textwrap.TextWrapper(width=80)
|
||||||
for line in wrapper.wrap(self.description):
|
for line in wrapper.wrap(self.description):
|
||||||
layout.label(text=line)
|
layout.label(text=line)
|
||||||
url = get_ifc_entity_doc_url(self.ifc_class)
|
version = tool.Ifc.get_schema()
|
||||||
|
doc = ifcopenshell.util.doc.get_entity_doc(version, self.ifc_class)
|
||||||
|
url = doc.get("spec_url")
|
||||||
if url:
|
if url:
|
||||||
url_op = layout.operator("bim.open_webbrowser", icon="URL", text="Online IFC Documentation")
|
url_op = layout.operator("bim.open_webbrowser", icon="URL", text="Online IFC Documentation")
|
||||||
url_op.url = url
|
url_op.url = url
|
||||||
|
|||||||
@@ -106,22 +106,6 @@ def cache_string(s):
|
|||||||
cache_string.data = {}
|
cache_string.data = {}
|
||||||
|
|
||||||
|
|
||||||
def get_ifc_entity_docs(ifc_entity):
|
|
||||||
schema = tool.Ifc.get_schema()
|
|
||||||
if schema is not None:
|
|
||||||
return get_entity_doc(schema, ifc_entity)
|
|
||||||
|
|
||||||
|
|
||||||
def get_ifc_entity_description(ifc_entity):
|
|
||||||
docs = get_ifc_entity_docs(ifc_entity)
|
|
||||||
return docs.get("description", "") if docs is not None else ""
|
|
||||||
|
|
||||||
|
|
||||||
def get_ifc_entity_doc_url(ifc_entity):
|
|
||||||
docs = get_ifc_entity_docs(ifc_entity)
|
|
||||||
return docs.get("spec_url", "") if docs is not None else ""
|
|
||||||
|
|
||||||
|
|
||||||
def get_predefined_type_description(entity, predefined_type):
|
def get_predefined_type_description(entity, predefined_type):
|
||||||
schema = tool.Ifc.get_schema()
|
schema = tool.Ifc.get_schema()
|
||||||
if schema is not None:
|
if schema is not None:
|
||||||
|
|||||||
@@ -401,21 +401,21 @@ def draw_custom_context_menu(self, context):
|
|||||||
prop_value = getattr(prop, prop_name, None)
|
prop_value = getattr(prop, prop_name, None)
|
||||||
if prop_value is None:
|
if prop_value is None:
|
||||||
return
|
return
|
||||||
schema = tool.Ifc.get_schema()
|
version = tool.Ifc.get_schema()
|
||||||
|
|
||||||
docs = {}
|
docs = {}
|
||||||
try:
|
try:
|
||||||
docs = get_entity_doc(schema, prop_value)
|
docs = get_entity_doc(version, prop_value)
|
||||||
if docs is None:
|
if docs is None:
|
||||||
raise RuntimeError
|
raise RuntimeError
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
try:
|
try:
|
||||||
docs = get_type_doc(schema, prop_value)
|
docs = get_type_doc(version, prop_value)
|
||||||
if docs is None:
|
if docs is None:
|
||||||
raise RuntimeError
|
raise RuntimeError
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
try:
|
try:
|
||||||
docs = get_property_set_doc(schema, prop_value)
|
docs = get_property_set_doc(version, prop_value)
|
||||||
if docs is None:
|
if docs is None:
|
||||||
raise RuntimeError
|
raise RuntimeError
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
|
|||||||
Reference in New Issue
Block a user