mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-12 18:43:26 +00:00
typing
This commit is contained in:
@@ -19,9 +19,15 @@
|
|||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell.api.owner.settings
|
import ifcopenshell.api.owner.settings
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def append_asset(file, library=None, element=None, reuse_identities=None) -> None:
|
def append_asset(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
library: ifcopenshell.file,
|
||||||
|
element: ifcopenshell.entity_instance,
|
||||||
|
reuse_identities: Optional[dict[int, ifcopenshell.entity_instance]] = None,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Appends an asset from a library into the active project
|
"""Appends an asset from a library into the active project
|
||||||
|
|
||||||
A BIM library asset may be a type product (e.g. wall type), product
|
A BIM library asset may be a type product (e.g. wall type), product
|
||||||
|
|||||||
@@ -17,10 +17,11 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
import ifcopenshell.api
|
||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
|
||||||
|
|
||||||
def add_pset(file, product=None, name=None) -> None:
|
def add_pset(file: ifcopenshell.file, product: ifcopenshell.entity_instance, name: str) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new property set to a product
|
"""Adds a new property set to a product
|
||||||
|
|
||||||
Products, such as physical objects or types in IFC may have properties
|
Products, such as physical objects or types in IFC may have properties
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
|
||||||
|
|
||||||
def add_qto(file, product=None, name=None) -> None:
|
def add_qto(file: ifcopenshell.file, product: ifcopenshell.entity_instance, name: str) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new quantity set to a product
|
"""Adds a new quantity set to a product
|
||||||
|
|
||||||
Products, such as physical objects or types in IFC may have quantities
|
Products, such as physical objects or types in IFC may have quantities
|
||||||
|
|||||||
@@ -18,9 +18,16 @@
|
|||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.util.pset
|
import ifcopenshell.util.pset
|
||||||
|
from typing import Optional, Any
|
||||||
|
|
||||||
|
|
||||||
def edit_qto(file, qto=None, name=None, properties=None, pset_template=None) -> None:
|
def edit_qto(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
qto: ifcopenshell.entity_instance,
|
||||||
|
name: Optional[str] = None,
|
||||||
|
properties: Optional[dict[str, Any]] = None,
|
||||||
|
pset_template: Optional[ifcopenshell.entity_instance] = None,
|
||||||
|
) -> None:
|
||||||
"""Edits a quantity set and its quantities
|
"""Edits a quantity set and its quantities
|
||||||
|
|
||||||
At its simplest usage, this may be used to edit the name of a quantity
|
At its simplest usage, this may be used to edit the name of a quantity
|
||||||
@@ -50,7 +57,7 @@ def edit_qto(file, qto=None, name=None, properties=None, pset_template=None) ->
|
|||||||
:param pset_template: If a quantity set template is provided, this will
|
:param pset_template: If a quantity set template is provided, this will
|
||||||
be used to determine data types. If no user-defined template is
|
be used to determine data types. If no user-defined template is
|
||||||
provided, the built-in buildingSMART templates will be loaded.
|
provided, the built-in buildingSMART templates will be loaded.
|
||||||
:type pset_template: ifcopenshell.entity_instance
|
:type pset_template: ifcopenshell.entity_instance, optional
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ import ifcopenshell
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_pset(file, product=None, pset=None) -> None:
|
def remove_pset(
|
||||||
|
file: ifcopenshell.file, product: ifcopenshell.entity_instance, pset: ifcopenshell.entity_instance
|
||||||
|
) -> None:
|
||||||
"""Removes a property set from a product
|
"""Removes a property set from a product
|
||||||
|
|
||||||
All properties that are part of this property set are also removed.
|
All properties that are part of this property set are also removed.
|
||||||
|
|||||||
@@ -18,16 +18,17 @@
|
|||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_prop_template(
|
def add_prop_template(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
pset_template=None,
|
pset_template: ifcopenshell.entity_instance,
|
||||||
name="NewProperty",
|
name: str = "NewProperty",
|
||||||
description=None,
|
description: Optional[str] = None,
|
||||||
template_type="P_SINGLEVALUE",
|
template_type: str = "P_SINGLEVALUE",
|
||||||
primary_measure_type="IfcLabel",
|
primary_measure_type: str = "IfcLabel",
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds new property templates to a property set template
|
"""Adds new property templates to a property set template
|
||||||
|
|
||||||
Assuming you first have a property set template, this allows you to add
|
Assuming you first have a property set template, this allows you to add
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import ifcopenshell.guid
|
|||||||
|
|
||||||
|
|
||||||
def add_pset_template(
|
def add_pset_template(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
name="New_Pset",
|
name: str = "New_Pset",
|
||||||
template_type="PSET_TYPEDRIVENOVERRIDE",
|
template_type: str = "PSET_TYPEDRIVENOVERRIDE",
|
||||||
applicable_entity="IfcObject,IfcTypeObject",
|
applicable_entity: str = "IfcObject,IfcTypeObject",
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new property set template
|
"""Adds a new property set template
|
||||||
|
|
||||||
This creates a new template for property sets. A template defines what
|
This creates a new template for property sets. A template defines what
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_prop_template(file, prop_template=None, attributes=None) -> None:
|
def edit_prop_template(
|
||||||
|
file: ifcopenshell.file, prop_template: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcSimplePropertyTemplate
|
"""Edits the attributes of an IfcSimplePropertyTemplate
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_prop_template(file, prop_template=None, attributes=None) -> None:
|
|||||||
:param prop_template: The IfcSimplePropertyTemplate entity you want to edit
|
:param prop_template: The IfcSimplePropertyTemplate entity you want to edit
|
||||||
:type prop_template: ifcopenshell.entity_instance
|
:type prop_template: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -43,7 +47,7 @@ def edit_prop_template(file, prop_template=None, attributes=None) -> None:
|
|||||||
ifcopenshell.api.run("pset_template.edit_prop_template", model,
|
ifcopenshell.api.run("pset_template.edit_prop_template", model,
|
||||||
prop_template=prop, attributes={"Name": "DemoA", "PrimaryMeasureType": "IfcLengthMeasure"})
|
prop_template=prop, attributes={"Name": "DemoA", "PrimaryMeasureType": "IfcLengthMeasure"})
|
||||||
"""
|
"""
|
||||||
settings = {"prop_template": prop_template, "attributes": attributes or {}}
|
settings = {"prop_template": prop_template, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
setattr(settings["prop_template"], name, value)
|
setattr(settings["prop_template"], name, value)
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_pset_template(file, pset_template=None, attributes=None) -> None:
|
def edit_pset_template(
|
||||||
|
file: ifcopenshell.file, pset_template: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcPropertySetTemplate
|
"""Edits the attributes of an IfcPropertySetTemplate
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_pset_template(file, pset_template=None, attributes=None) -> None:
|
|||||||
:param pset_template: The IfcPropertySetTemplate entity you want to edit
|
:param pset_template: The IfcPropertySetTemplate entity you want to edit
|
||||||
:type pset_template: ifcopenshell.entity_instance
|
:type pset_template: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -41,7 +45,7 @@ def edit_pset_template(file, pset_template=None, attributes=None) -> None:
|
|||||||
ifcopenshell.api.run("pset_template.edit_pset_template", model,
|
ifcopenshell.api.run("pset_template.edit_pset_template", model,
|
||||||
pset_template=template, attributes={"Name": "ABC_RiskFactors"})
|
pset_template=template, attributes={"Name": "ABC_RiskFactors"})
|
||||||
"""
|
"""
|
||||||
settings = {"pset_template": pset_template, "attributes": attributes or {}}
|
settings = {"pset_template": pset_template, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
setattr(settings["pset_template"], name, value)
|
setattr(settings["pset_template"], name, value)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_prop_template(file, prop_template=None) -> None:
|
def remove_prop_template(file: ifcopenshell.file, prop_template: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a property template
|
"""Removes a property template
|
||||||
|
|
||||||
Note that a property set template should always have at least one
|
Note that a property set template should always have at least one
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_pset_template(file, pset_template=None) -> None:
|
def remove_pset_template(file: ifcopenshell.file, pset_template: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a property set template
|
"""Removes a property set template
|
||||||
|
|
||||||
All property templates within the property set template are also removed
|
All property templates within the property set template are also removed
|
||||||
|
|||||||
@@ -17,15 +17,16 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_resource(
|
def add_resource(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
parent_resource=None,
|
parent_resource: Optional[ifcopenshell.entity_instance] = None,
|
||||||
ifc_class="IfcCrewResource",
|
ifc_class: str = "IfcCrewResource",
|
||||||
name=None,
|
name: Optional[str] = None,
|
||||||
predefined_type="NOTDEFINED",
|
predefined_type: str = "NOTDEFINED",
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Add a new construction resource
|
"""Add a new construction resource
|
||||||
|
|
||||||
Construction resources may be managed and connected to cost schedules
|
Construction resources may be managed and connected to cost schedules
|
||||||
@@ -48,7 +49,7 @@ def add_resource(
|
|||||||
|
|
||||||
:param parent_resource: If this is a child resource (typically to a crew
|
:param parent_resource: If this is a child resource (typically to a crew
|
||||||
resource), then nominate the parent IfcConstructionResource here.
|
resource), then nominate the parent IfcConstructionResource here.
|
||||||
:type parent_resource: ifcopenshell.entity_instance
|
:type parent_resource: ifcopenshell.entity_instance, optional
|
||||||
:param ifc_class: The class of resource chosen from
|
:param ifc_class: The class of resource chosen from
|
||||||
IfcConstructionEquipmentResource, IfcConstructionMaterialResource,
|
IfcConstructionEquipmentResource, IfcConstructionMaterialResource,
|
||||||
IfcConstructionProductResource, IfcCrewResource, IfcLaborResource,
|
IfcConstructionProductResource, IfcCrewResource, IfcLaborResource,
|
||||||
|
|||||||
@@ -19,7 +19,9 @@
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def add_resource_quantity(file, resource=None, ifc_class="IfcQuantityCount") -> None:
|
def add_resource_quantity(
|
||||||
|
file: ifcopenshell.file, resource: ifcopenshell.entity_instance, ifc_class: str = "IfcQuantityCount"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a quantity to a resource
|
"""Adds a quantity to a resource
|
||||||
|
|
||||||
The quantity of a resource represents the "unit quantity" of that
|
The quantity of a resource represents the "unit quantity" of that
|
||||||
@@ -65,6 +67,7 @@ def add_resource_quantity(file, resource=None, ifc_class="IfcQuantityCount") ->
|
|||||||
settings = {"resource": resource, "ifc_class": ifc_class}
|
settings = {"resource": resource, "ifc_class": ifc_class}
|
||||||
|
|
||||||
quantity = file.create_entity(settings["ifc_class"], Name="Unnamed")
|
quantity = file.create_entity(settings["ifc_class"], Name="Unnamed")
|
||||||
|
# 3 IfcPhysicalSimpleQuantity Value
|
||||||
quantity[3] = 0.0
|
quantity[3] = 0.0
|
||||||
old_quantity = settings["resource"].BaseQuantity
|
old_quantity = settings["resource"].BaseQuantity
|
||||||
settings["resource"].BaseQuantity = quantity
|
settings["resource"].BaseQuantity = quantity
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
|
||||||
|
|
||||||
def add_resource_time(file, resource=None) -> None:
|
def add_resource_time(file: ifcopenshell.file, resource: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance:
|
||||||
"""Adds the time that a resource is used for
|
"""Adds the time that a resource is used for
|
||||||
|
|
||||||
For labour and equipment resources, the total duration that the resource
|
For labour and equipment resources, the total duration that the resource
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
|
||||||
|
|
||||||
def assign_resource(file, relating_resource=None, related_object=None) -> None:
|
def assign_resource(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_resource: ifcopenshell.entity_instance,
|
||||||
|
related_object: ifcopenshell.entity_instance,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assigns a resource to an object
|
"""Assigns a resource to an object
|
||||||
|
|
||||||
Two types of objects are typically assigned to resources: products and
|
Two types of objects are typically assigned to resources: products and
|
||||||
@@ -89,7 +93,7 @@ def assign_resource(file, relating_resource=None, related_object=None) -> None:
|
|||||||
assignment.is_a("IfclRelAssignsToResource")
|
assignment.is_a("IfclRelAssignsToResource")
|
||||||
and assignment.RelatingResource == settings["relating_resource"]
|
and assignment.RelatingResource == settings["relating_resource"]
|
||||||
):
|
):
|
||||||
return
|
return assignment
|
||||||
|
|
||||||
resource_of = None
|
resource_of = None
|
||||||
if settings["relating_resource"].ResourceOf:
|
if settings["relating_resource"].ResourceOf:
|
||||||
|
|||||||
@@ -18,12 +18,13 @@
|
|||||||
|
|
||||||
import math
|
import math
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
import ifcopenshell.util.constraint
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
import ifcopenshell.util.resource
|
import ifcopenshell.util.resource
|
||||||
|
|
||||||
|
|
||||||
def calculate_resource_usage(file, resource=None) -> None:
|
def calculate_resource_usage(file: ifcopenshell.file, resource: ifcopenshell.entity_instance) -> None:
|
||||||
"""Calculates the number of resources required to perform scheduled work on a task."""
|
"""Calculates the number of resources required to perform scheduled work on a task."""
|
||||||
settings = {"resource": resource}
|
settings = {"resource": resource}
|
||||||
|
|
||||||
|
|||||||
@@ -18,12 +18,13 @@
|
|||||||
|
|
||||||
import math
|
import math
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
import ifcopenshell.util.constraint
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
import ifcopenshell.util.resource
|
import ifcopenshell.util.resource
|
||||||
|
|
||||||
|
|
||||||
def calculate_resource_work(file, resource=None) -> None:
|
def calculate_resource_work(file: ifcopenshell.file, resource: ifcopenshell.entity_instance) -> None:
|
||||||
"""Calculates the work that a resource is used for
|
"""Calculates the work that a resource is used for
|
||||||
|
|
||||||
This is an unofficial parametric calculation that may be done on a
|
This is an unofficial parametric calculation that may be done on a
|
||||||
|
|||||||
@@ -15,9 +15,11 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_resource(file, resource=None, attributes=None) -> None:
|
def edit_resource(file: ifcopenshell.file, resource: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None:
|
||||||
"""Edits the attributes of an IfcResource
|
"""Edits the attributes of an IfcResource
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +28,7 @@ def edit_resource(file, resource=None, attributes=None) -> None:
|
|||||||
:param resource: The IfcResource entity you want to edit
|
:param resource: The IfcResource entity you want to edit
|
||||||
:type resource: ifcopenshell.entity_instance
|
:type resource: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -40,7 +42,7 @@ def edit_resource(file, resource=None, attributes=None) -> None:
|
|||||||
# Change the name of the resource to "Zone A Crew"
|
# Change the name of the resource to "Zone A Crew"
|
||||||
ifcopenshell.api.run("resource.edit_resource", model, resource=resource, attributes={"Name": "Foo"})
|
ifcopenshell.api.run("resource.edit_resource", model, resource=resource, attributes={"Name": "Foo"})
|
||||||
"""
|
"""
|
||||||
settings = {"resource": resource, "attributes": attributes or {}}
|
settings = {"resource": resource, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
setattr(settings["resource"], name, value)
|
setattr(settings["resource"], name, value)
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_resource_quantity(file, physical_quantity=None, attributes=None) -> None:
|
def edit_resource_quantity(
|
||||||
|
file: ifcopenshell.file, physical_quantity: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IFC quantity
|
"""Edits the attributes of an IFC quantity
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_resource_quantity(file, physical_quantity=None, attributes=None) -> Non
|
|||||||
:param physical_quantity: The IfC quantity entity you want to edit
|
:param physical_quantity: The IfC quantity entity you want to edit
|
||||||
:type physical_quantity: ifcopenshell.entity_instance
|
:type physical_quantity: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -51,7 +55,7 @@ def edit_resource_quantity(file, physical_quantity=None, attributes=None) -> Non
|
|||||||
"""
|
"""
|
||||||
settings = {
|
settings = {
|
||||||
"physical_quantity": physical_quantity,
|
"physical_quantity": physical_quantity,
|
||||||
"attributes": attributes or {},
|
"attributes": attributes,
|
||||||
}
|
}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
|
|||||||
@@ -18,9 +18,12 @@
|
|||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_resource_time(file, resource_time=None, attributes=None) -> None:
|
def edit_resource_time(
|
||||||
|
file: ifcopenshell.file, resource_time: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcResourceTime
|
"""Edits the attributes of an IfcResourceTime
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -29,7 +32,7 @@ def edit_resource_time(file, resource_time=None, attributes=None) -> None:
|
|||||||
:param resource_time: The IfcResourceTime entity you want to edit
|
:param resource_time: The IfcResourceTime entity you want to edit
|
||||||
:type resource_time: ifcopenshell.entity_instance
|
:type resource_time: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -59,7 +62,7 @@ def edit_resource_time(file, resource_time=None, attributes=None) -> None:
|
|||||||
"""
|
"""
|
||||||
usecase = Usecase()
|
usecase = Usecase()
|
||||||
usecase.file = file
|
usecase.file = file
|
||||||
usecase.settings = {"resource_time": resource_time, "attributes": attributes or {}}
|
usecase.settings = {"resource_time": resource_time, "attributes": attributes}
|
||||||
return usecase.execute()
|
return usecase.execute()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_resource(file, resource=None) -> None:
|
def remove_resource(file: ifcopenshell.file, resource: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a resource and all relationships
|
"""Removes a resource and all relationships
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_resource_quantity(file, resource=None) -> None:
|
def remove_resource_quantity(file: ifcopenshell.file, resource: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes the base quantity of a resource
|
"""Removes the base quantity of a resource
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def unassign_resource(file, relating_resource=None, related_object=None) -> None:
|
def unassign_resource(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_resource: ifcopenshell.entity_instance,
|
||||||
|
related_object: ifcopenshell.entity_instance,
|
||||||
|
) -> None:
|
||||||
"""Removes the relationship between a resource and object
|
"""Removes the relationship between a resource and object
|
||||||
|
|
||||||
:param relating_resource: The IfcResource to assign the object to.
|
:param relating_resource: The IfcResource to assign the object to.
|
||||||
@@ -29,8 +33,8 @@ def unassign_resource(file, relating_resource=None, related_object=None) -> None
|
|||||||
:param related_object: The IfcProduct or IfcActor to assign to the
|
:param related_object: The IfcProduct or IfcActor to assign to the
|
||||||
object.
|
object.
|
||||||
:type related_object: ifcopenshell.entity_instance
|
:type related_object: ifcopenshell.entity_instance
|
||||||
:return: The newly created IfcRelAssignsToResource
|
:return: None
|
||||||
:rtype: ifcopenshell.entity_instance
|
:rtype: None
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
@@ -74,4 +78,3 @@ def unassign_resource(file, relating_resource=None, related_object=None) -> None
|
|||||||
related_objects.remove(settings["related_object"])
|
related_objects.remove(settings["related_object"])
|
||||||
rel.RelatedObjects = related_objects
|
rel.RelatedObjects = related_objects
|
||||||
ifcopenshell.api.run("owner.update_owner_history", file, **{"element": rel})
|
ifcopenshell.api.run("owner.update_owner_history", file, **{"element": rel})
|
||||||
return rel
|
|
||||||
|
|||||||
@@ -17,11 +17,13 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
import ifcopenshell.api
|
||||||
import ifcopenshell.util.system
|
import ifcopenshell.util.system
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
import ifcopenshell.util.placement
|
||||||
|
|
||||||
|
|
||||||
def copy_class(file, product=None) -> None:
|
def copy_class(file: ifcopenshell.file, product: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance:
|
||||||
"""Copies a product
|
"""Copies a product
|
||||||
|
|
||||||
The following relationships are also duplicated:
|
The following relationships are also duplicated:
|
||||||
|
|||||||
@@ -20,14 +20,15 @@ import ifcopenshell
|
|||||||
import ifcopenshell.util.type
|
import ifcopenshell.util.type
|
||||||
import ifcopenshell.util.schema
|
import ifcopenshell.util.schema
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def reassign_class(
|
def reassign_class(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
product=None,
|
product: ifcopenshell.entity_instance,
|
||||||
ifc_class="IfcBuildingElementProxy",
|
ifc_class: str = "IfcBuildingElementProxy",
|
||||||
predefined_type=None,
|
predefined_type: Optional[str] = None,
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Changes the class of a product
|
"""Changes the class of a product
|
||||||
|
|
||||||
If you ever created a wall then realised it's meant to be something
|
If you ever created a wall then realised it's meant to be something
|
||||||
|
|||||||
@@ -19,17 +19,18 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_task(
|
def add_task(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
work_schedule=None,
|
work_schedule: Optional[ifcopenshell.entity_instance] = None,
|
||||||
parent_task=None,
|
parent_task: Optional[ifcopenshell.entity_instance] = None,
|
||||||
name=None,
|
name: Optional[str] = None,
|
||||||
description=None,
|
description: Optional[str] = None,
|
||||||
identification=None,
|
identification: Optional[str] = None,
|
||||||
predefined_type="NOTDEFINED",
|
predefined_type: str = "NOTDEFINED",
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new task
|
"""Adds a new task
|
||||||
|
|
||||||
Tasks are typically used for two purposes: construction scheduling and
|
Tasks are typically used for two purposes: construction scheduling and
|
||||||
@@ -66,11 +67,11 @@ def add_task(
|
|||||||
:param work_schedule: The work schedule to group the task in, if the
|
:param work_schedule: The work schedule to group the task in, if the
|
||||||
task is to be a top-level or root task. This is mutually exclusive
|
task is to be a top-level or root task. This is mutually exclusive
|
||||||
with the parent_task parameter.
|
with the parent_task parameter.
|
||||||
:type work_schedule: ifcopenshell.entity_instance
|
:type work_schedule: ifcopenshell.entity_instance, optional
|
||||||
:param parent_task: The parent task, if the task is to be a subtask or
|
:param parent_task: The parent task, if the task is to be a subtask or
|
||||||
child task. This is mutually exclusive with the work_schedule
|
child task. This is mutually exclusive with the work_schedule
|
||||||
parameter.
|
parameter.
|
||||||
:type parent_task: ifcopenshell.entity_instance
|
:type parent_task: ifcopenshell.entity_instance, optioanl
|
||||||
:param name: The name of the task.
|
:param name: The name of the task.
|
||||||
:type name: str,optional
|
:type name: str,optional
|
||||||
:param description: The description of the task.
|
:param description: The description of the task.
|
||||||
|
|||||||
@@ -15,9 +15,12 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def add_task_time(file, task=None, is_recurring=False) -> None:
|
def add_task_time(
|
||||||
|
file: ifcopenshell.file, task: ifcopenshell.entity_instance, is_recurring: bool = False
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a task time to a task
|
"""Adds a task time to a task
|
||||||
|
|
||||||
Some tasks, such as activities within a work breakdown structure or
|
Some tasks, such as activities within a work breakdown structure or
|
||||||
|
|||||||
@@ -19,11 +19,17 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
import ifcopenshell.util.sequence
|
import ifcopenshell.util.sequence
|
||||||
from datetime import datetime
|
from datetime import datetime, time
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from typing import Optional, Union
|
||||||
|
|
||||||
|
|
||||||
def add_time_period(file, recurrence_pattern=None, start_time=None, end_time=None) -> None:
|
def add_time_period(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
recurrence_pattern: ifcopenshell.entity_instance,
|
||||||
|
start_time: Optional[Union[str, time]] = None,
|
||||||
|
end_time: Optional[Union[str, time]] = None,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a time period to a recurrence pattern
|
"""Adds a time period to a recurrence pattern
|
||||||
|
|
||||||
A recurring time may be an all-day event, or only during certain time
|
A recurring time may be an all-day event, or only during certain time
|
||||||
|
|||||||
@@ -19,7 +19,9 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def add_work_calendar(file, name="Unnamed", predefined_type="NOTDEFINED") -> None:
|
def add_work_calendar(
|
||||||
|
file: ifcopenshell.file, name: str = "Unnamed", predefined_type: str = "NOTDEFINED"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Add a work calendar
|
"""Add a work calendar
|
||||||
|
|
||||||
A work calendar defines when work is allowed to occur and when the
|
A work calendar defines when work is allowed to occur and when the
|
||||||
|
|||||||
@@ -17,11 +17,18 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
import ifcopenshell.api.owner.settings
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
from datetime import datetime
|
from datetime import datetime, time
|
||||||
|
from typing import Optional, Union
|
||||||
|
|
||||||
|
|
||||||
def add_work_plan(file, name=None, predefined_type="NOTDEFINED", start_time=None) -> None:
|
def add_work_plan(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
name: Optional[str] = None,
|
||||||
|
predefined_type: str = "NOTDEFINED",
|
||||||
|
start_time: Optional[Union[str, time]] = None,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Add a new work plan
|
"""Add a new work plan
|
||||||
|
|
||||||
A work plan is a group of work schedules. Since work schedules may have
|
A work plan is a group of work schedules. Since work schedules may have
|
||||||
|
|||||||
@@ -17,18 +17,21 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
import ifcopenshell.api.owner.settings
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
from datetime import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from typing import Union, Optional
|
||||||
|
|
||||||
|
|
||||||
def add_work_schedule(
|
def add_work_schedule(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
name="Unnamed",
|
name: str = "Unnamed",
|
||||||
predefined_type="NOTDEFINED",
|
predefined_type: str = "NOTDEFINED",
|
||||||
object_type=None,
|
object_type=None,
|
||||||
start_time=None,
|
start_time: Optional[Union[str, time]] = None,
|
||||||
work_plan=None,
|
work_plan: Optional[ifcopenshell.entity_instance] = None,
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Add a new work schedule
|
"""Add a new work schedule
|
||||||
|
|
||||||
A work schedule is a group of tasks, where the tasks are typically
|
A work schedule is a group of tasks, where the tasks are typically
|
||||||
|
|||||||
@@ -15,9 +15,12 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def add_work_time(file, work_calendar=None, time_type="WorkingTimes") -> None:
|
def add_work_time(
|
||||||
|
file: ifcopenshell.file, work_calendar: ifcopenshell.entity_instance, time_type: str = "WorkingTimes"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Add either working times or holiday times to a calendar
|
"""Add either working times or holiday times to a calendar
|
||||||
|
|
||||||
A calendar defines when work occurs by defining working times and
|
A calendar defines when work occurs by defining working times and
|
||||||
|
|||||||
@@ -19,7 +19,9 @@
|
|||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
|
||||||
|
|
||||||
def assign_lag_time(file, rel_sequence=None, lag_value=None, duration_type="WORKTIME") -> None:
|
def assign_lag_time(
|
||||||
|
file: ifcopenshell.file, rel_sequence: ifcopenshell.entity_instance, lag_value: str, duration_type: str = "WORKTIME"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assign a lag time to a sequence relationship between tasks
|
"""Assign a lag time to a sequence relationship between tasks
|
||||||
|
|
||||||
A task sequence (e.g. finish to start) may optionally have a lag time
|
A task sequence (e.g. finish to start) may optionally have a lag time
|
||||||
@@ -94,3 +96,4 @@ def assign_lag_time(file, rel_sequence=None, lag_value=None, duration_type="WORK
|
|||||||
if settings["rel_sequence"].TimeLag and len(file.get_inverse(settings["rel_sequence"].TimeLag)) == 1:
|
if settings["rel_sequence"].TimeLag and len(file.get_inverse(settings["rel_sequence"].TimeLag)) == 1:
|
||||||
file.remove(settings["rel_sequence"].TimeLag)
|
file.remove(settings["rel_sequence"].TimeLag)
|
||||||
settings["rel_sequence"].TimeLag = lag_time
|
settings["rel_sequence"].TimeLag = lag_time
|
||||||
|
return lag_time
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
|
||||||
|
|
||||||
def assign_process(file, relating_process=None, related_object=None) -> None:
|
def assign_process(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_process: ifcopenshell.entity_instance,
|
||||||
|
related_object: ifcopenshell.entity_instance,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assigns an object to be related to a process, typically a construction task
|
"""Assigns an object to be related to a process, typically a construction task
|
||||||
|
|
||||||
Processes work using the ICOM (Input, Controls, Outputs, Mechanisms)
|
Processes work using the ICOM (Input, Controls, Outputs, Mechanisms)
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
|
||||||
|
|
||||||
def assign_product(file, relating_product=None, related_object=None) -> None:
|
def assign_product(
|
||||||
|
file: ifcopenshell.entity_instance,
|
||||||
|
relating_product: ifcopenshell.entity_instance,
|
||||||
|
related_object: ifcopenshell.entity_instance,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assigns a product to be produced as a result of a process
|
"""Assigns a product to be produced as a result of a process
|
||||||
|
|
||||||
A construction task may result in products (e.g. a wall) being
|
A construction task may result in products (e.g. a wall) being
|
||||||
@@ -71,7 +75,7 @@ def assign_product(file, relating_product=None, related_object=None) -> None:
|
|||||||
if settings["related_object"].HasAssignments:
|
if settings["related_object"].HasAssignments:
|
||||||
for assignment in settings["related_object"].HasAssignments:
|
for assignment in settings["related_object"].HasAssignments:
|
||||||
if assignment.is_a("IfcRelAssignsToProduct") and assignment.RelatingProduct == settings["relating_product"]:
|
if assignment.is_a("IfcRelAssignsToProduct") and assignment.RelatingProduct == settings["relating_product"]:
|
||||||
return
|
return assignment
|
||||||
|
|
||||||
referenced_by = None
|
referenced_by = None
|
||||||
if settings["relating_product"].ReferencedBy:
|
if settings["relating_product"].ReferencedBy:
|
||||||
|
|||||||
@@ -15,9 +15,12 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def assign_recurrence_pattern(file, parent=None, recurrence_type="WEEKLY") -> None:
|
def assign_recurrence_pattern(
|
||||||
|
file: ifcopenshell.file, parent: ifcopenshell.entity_instance, recurrence_type: str = "WEEKLY"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Define a time to recur at a particular interval
|
"""Define a time to recur at a particular interval
|
||||||
|
|
||||||
There are two scenarios where you might want to define a recurring time
|
There are two scenarios where you might want to define a recurring time
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ import ifcopenshell.guid
|
|||||||
|
|
||||||
|
|
||||||
def assign_sequence(
|
def assign_sequence(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
relating_process=None,
|
relating_process: ifcopenshell.entity_instance,
|
||||||
related_process=None,
|
related_process: ifcopenshell.entity_instance,
|
||||||
sequence_type="FINISH_START",
|
sequence_type: str = "FINISH_START",
|
||||||
) -> None:
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assign a sequential relationship between tasks
|
"""Assign a sequential relationship between tasks
|
||||||
|
|
||||||
Tasks in construction sequencing typically have sequence relationships
|
Tasks in construction sequencing typically have sequence relationships
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ import ifcopenshell
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def assign_workplan(file, work_schedule=None, work_plan=None) -> None:
|
def assign_workplan(
|
||||||
|
file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance, work_plan: ifcopenshell.entity_instance
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assigns a work schedule to a work plan
|
"""Assigns a work schedule to a work plan
|
||||||
|
|
||||||
Typically, work schedules would be assigned to a work plan at creation.
|
Typically, work schedules would be assigned to a work plan at creation.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import ifcopenshell.util.date
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def calculate_task_duration(file, task=None) -> None:
|
def calculate_task_duration(file: ifcopenshell.file, task: ifcopenshell.entity_instance) -> None:
|
||||||
"""Calculates the task duration based on resource usage
|
"""Calculates the task duration based on resource usage
|
||||||
|
|
||||||
If a task has labour or equipment resources assigned to it, its duration
|
If a task has labour or equipment resources assigned to it, its duration
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.util.date
|
|||||||
import ifcopenshell.util.sequence
|
import ifcopenshell.util.sequence
|
||||||
|
|
||||||
|
|
||||||
def cascade_schedule(file, task=None) -> None:
|
def cascade_schedule(file: ifcopenshell.file, task: ifcopenshell.entity_instance) -> None:
|
||||||
"""Cascades start and end dates of tasks based on durations
|
"""Cascades start and end dates of tasks based on durations
|
||||||
|
|
||||||
Given a start task with a start date and duration, the end date, and the
|
Given a start task with a start date and duration, the end date, and the
|
||||||
|
|||||||
@@ -17,12 +17,17 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
import ifcopenshell.api
|
||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
import ifcopenshell.util.system
|
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
import ifcopenshell.util.sequence
|
||||||
|
import ifcopenshell.util.system
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def create_baseline(file, work_schedule=None, name=None) -> None:
|
def create_baseline(
|
||||||
|
file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance, name: Optional[str] = None
|
||||||
|
) -> None:
|
||||||
"""Creates a baseline for your Work Schedule
|
"""Creates a baseline for your Work Schedule
|
||||||
|
|
||||||
Using a IfcWorkSchdule having PredefinedType=PLANNED,
|
Using a IfcWorkSchdule having PredefinedType=PLANNED,
|
||||||
@@ -38,6 +43,8 @@ def create_baseline(file, work_schedule=None, name=None) -> None:
|
|||||||
|
|
||||||
:param work_schedule: The planned work_schedule to baseline
|
:param work_schedule: The planned work_schedule to baseline
|
||||||
:type work_schedule: ifcopenshell.entity_instance
|
:type work_schedule: ifcopenshell.entity_instance
|
||||||
|
:param name: baseline work schedule name
|
||||||
|
:type name: str, optional
|
||||||
:return: The baseline work_schedule
|
:return: The baseline work_schedule
|
||||||
:rtype: ifcopenshell.entity_instance
|
:rtype: ifcopenshell.entity_instance
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import ifcopenshell.util.element
|
|||||||
import ifcopenshell.util.sequence
|
import ifcopenshell.util.sequence
|
||||||
|
|
||||||
|
|
||||||
def duplicate_task(file, task=None) -> None:
|
def duplicate_task(file: ifcopenshell.file, task: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance:
|
||||||
"""Duplicates a task in the project
|
"""Duplicates a task in the project
|
||||||
|
|
||||||
The following relationships are also duplicated:
|
The following relationships are also duplicated:
|
||||||
|
|||||||
@@ -18,9 +18,10 @@
|
|||||||
|
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_lag_time(file, lag_time=None, attributes=None) -> None:
|
def edit_lag_time(file: ifcopenshell.file, lag_time: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None:
|
||||||
"""Edits the attributes of an IfcLagTime
|
"""Edits the attributes of an IfcLagTime
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -29,7 +30,7 @@ def edit_lag_time(file, lag_time=None, attributes=None) -> None:
|
|||||||
:param lag_time: The IfcLagTime entity you want to edit
|
:param lag_time: The IfcLagTime entity you want to edit
|
||||||
:type lag_time: ifcopenshell.entity_instance
|
:type lag_time: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ def edit_lag_time(file, lag_time=None, attributes=None) -> None:
|
|||||||
# Or, let's make it 2 days instead.
|
# Or, let's make it 2 days instead.
|
||||||
ifcopenshell.api.run("sequence.edit_lag_time", model, lag_time=lag, attributes={"LagValue": "P2D"})
|
ifcopenshell.api.run("sequence.edit_lag_time", model, lag_time=lag, attributes={"LagValue": "P2D"})
|
||||||
"""
|
"""
|
||||||
settings = {"lag_time": lag_time, "attributes": attributes or {}}
|
settings = {"lag_time": lag_time, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
if name == "LagValue" and value is not None:
|
if name == "LagValue" and value is not None:
|
||||||
|
|||||||
@@ -18,9 +18,12 @@
|
|||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.util.sequence
|
import ifcopenshell.util.sequence
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_recurrence_pattern(file, recurrence_pattern=None, attributes=None) -> None:
|
def edit_recurrence_pattern(
|
||||||
|
file: ifcopenshell.file, recurrence_pattern: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcRecurrencePattern
|
"""Edits the attributes of an IfcRecurrencePattern
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -29,7 +32,7 @@ def edit_recurrence_pattern(file, recurrence_pattern=None, attributes=None) -> N
|
|||||||
:param recurrence_pattern: The IfcRecurrencePattern entity you want to edit
|
:param recurrence_pattern: The IfcRecurrencePattern entity you want to edit
|
||||||
:type recurrence_pattern: ifcopenshell.entity_instance
|
:type recurrence_pattern: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -54,7 +57,7 @@ def edit_recurrence_pattern(file, recurrence_pattern=None, attributes=None) -> N
|
|||||||
"""
|
"""
|
||||||
settings = {
|
settings = {
|
||||||
"recurrence_pattern": recurrence_pattern,
|
"recurrence_pattern": recurrence_pattern,
|
||||||
"attributes": attributes or {},
|
"attributes": attributes,
|
||||||
}
|
}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
|
|||||||
@@ -18,9 +18,12 @@
|
|||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_sequence(file, rel_sequence=None, attributes=None) -> None:
|
def edit_sequence(
|
||||||
|
file: ifcopenshell.file, rel_sequence: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcRelSequence
|
"""Edits the attributes of an IfcRelSequence
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -29,7 +32,7 @@ def edit_sequence(file, rel_sequence=None, attributes=None) -> None:
|
|||||||
:param rel_sequence: The IfcRelSequence entity you want to edit
|
:param rel_sequence: The IfcRelSequence entity you want to edit
|
||||||
:type rel_sequence: ifcopenshell.entity_instance
|
:type rel_sequence: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -59,7 +62,7 @@ def edit_sequence(file, rel_sequence=None, attributes=None) -> None:
|
|||||||
ifcopenshell.api.run("sequence.edit_sequence", model,
|
ifcopenshell.api.run("sequence.edit_sequence", model,
|
||||||
rel_sequence=sequence, attributes={"SequenceType": "START_START"})
|
rel_sequence=sequence, attributes={"SequenceType": "START_START"})
|
||||||
"""
|
"""
|
||||||
settings = {"rel_sequence": rel_sequence, "attributes": attributes or {}}
|
settings = {"rel_sequence": rel_sequence, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
setattr(settings["rel_sequence"], name, value)
|
setattr(settings["rel_sequence"], name, value)
|
||||||
|
|||||||
@@ -15,9 +15,11 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_task(file, task=None, attributes=None) -> None:
|
def edit_task(file: ifcopenshell.file, task: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None:
|
||||||
"""Edits the attributes of an IfcTask
|
"""Edits the attributes of an IfcTask
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +28,7 @@ def edit_task(file, task=None, attributes=None) -> None:
|
|||||||
:param task: The IfcTask entity you want to edit
|
:param task: The IfcTask entity you want to edit
|
||||||
:type task: ifcopenshell.entity_instance
|
:type task: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
|
|||||||
@@ -20,13 +20,13 @@ import datetime
|
|||||||
import ifcopenshell.util.constraint
|
import ifcopenshell.util.constraint
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
import ifcopenshell.util.sequence
|
import ifcopenshell.util.sequence
|
||||||
from typing import Any, Optional
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_task_time(
|
def edit_task_time(
|
||||||
file: ifcopenshell.file,
|
file: ifcopenshell.file,
|
||||||
task_time: ifcopenshell.entity_instance,
|
task_time: ifcopenshell.entity_instance,
|
||||||
attributes: Optional[dict[str, Any]] = None,
|
attributes: dict[str, Any],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Edits the attributes of an IfcTaskTime
|
"""Edits the attributes of an IfcTaskTime
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ def edit_task_time(
|
|||||||
:param task_time: The IfcTaskTime entity you want to edit
|
:param task_time: The IfcTaskTime entity you want to edit
|
||||||
:type task_time: ifcopenshell.entity_instance
|
:type task_time: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ def edit_task_time(
|
|||||||
"""
|
"""
|
||||||
usecase = Usecase()
|
usecase = Usecase()
|
||||||
usecase.file = file
|
usecase.file = file
|
||||||
usecase.settings = {"task_time": task_time, "attributes": attributes or {}}
|
usecase.settings = {"task_time": task_time, "attributes": attributes}
|
||||||
return usecase.execute()
|
return usecase.execute()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_work_calendar(file, work_calendar=None, attributes=None) -> None:
|
def edit_work_calendar(
|
||||||
|
file: ifcopenshell.file, work_calendar: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcWorkCalendar
|
"""Edits the attributes of an IfcWorkCalendar
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_work_calendar(file, work_calendar=None, attributes=None) -> None:
|
|||||||
:param work_calendar: The IfcWorkCalendar entity you want to edit
|
:param work_calendar: The IfcWorkCalendar entity you want to edit
|
||||||
:type work_calendar: ifcopenshell.entity_instance
|
:type work_calendar: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -41,7 +45,7 @@ def edit_work_calendar(file, work_calendar=None, attributes=None) -> None:
|
|||||||
ifcopenshell.api.run("sequence.edit_work_calendar", model,
|
ifcopenshell.api.run("sequence.edit_work_calendar", model,
|
||||||
work_calendar=calendar, attributes={"Description": "Monday to Friday 8 hour days"})
|
work_calendar=calendar, attributes={"Description": "Monday to Friday 8 hour days"})
|
||||||
"""
|
"""
|
||||||
settings = {"work_calendar": work_calendar, "attributes": attributes or {}}
|
settings = {"work_calendar": work_calendar, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
setattr(settings["work_calendar"], name, value)
|
setattr(settings["work_calendar"], name, value)
|
||||||
|
|||||||
@@ -17,9 +17,12 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_work_plan(file, work_plan=None, attributes=None) -> None:
|
def edit_work_plan(
|
||||||
|
file: ifcopenshell.file, work_plan: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcWorkPlan
|
"""Edits the attributes of an IfcWorkPlan
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -28,7 +31,7 @@ def edit_work_plan(file, work_plan=None, attributes=None) -> None:
|
|||||||
:param work_plan: The IfcWorkPlan entity you want to edit
|
:param work_plan: The IfcWorkPlan entity you want to edit
|
||||||
:type work_plan: ifcopenshell.entity_instance
|
:type work_plan: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -43,7 +46,7 @@ def edit_work_plan(file, work_plan=None, attributes=None) -> None:
|
|||||||
ifcopenshell.api.run("sequence.edit_work_plan", model,
|
ifcopenshell.api.run("sequence.edit_work_plan", model,
|
||||||
work_plan=work_plan, attributes={"Description": "Construction of phase 1"})
|
work_plan=work_plan, attributes={"Description": "Construction of phase 1"})
|
||||||
"""
|
"""
|
||||||
settings = {"work_plan": work_plan, "attributes": attributes or {}}
|
settings = {"work_plan": work_plan, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
if value:
|
if value:
|
||||||
|
|||||||
@@ -17,9 +17,12 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_work_schedule(file, work_schedule=None, attributes=None) -> None:
|
def edit_work_schedule(
|
||||||
|
file: ifcopenshell.entity_instance, work_schedule: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcWorkSchedule
|
"""Edits the attributes of an IfcWorkSchedule
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -28,7 +31,7 @@ def edit_work_schedule(file, work_schedule=None, attributes=None) -> None:
|
|||||||
:param work_schedule: The IfcWorkSchedule entity you want to edit
|
:param work_schedule: The IfcWorkSchedule entity you want to edit
|
||||||
:type work_schedule: ifcopenshell.entity_instance
|
:type work_schedule: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -47,7 +50,7 @@ def edit_work_schedule(file, work_schedule=None, attributes=None) -> None:
|
|||||||
ifcopenshell.api.run("sequence.edit_work_schedule", model,
|
ifcopenshell.api.run("sequence.edit_work_schedule", model,
|
||||||
work_schedule=work_schedule, attributes={"Description": "3 crane design option"})
|
work_schedule=work_schedule, attributes={"Description": "3 crane design option"})
|
||||||
"""
|
"""
|
||||||
settings = {"work_schedule": work_schedule, "attributes": attributes or {}}
|
settings = {"work_schedule": work_schedule, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
if value:
|
if value:
|
||||||
|
|||||||
@@ -17,13 +17,13 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
from typing import Any, Optional
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_work_time(
|
def edit_work_time(
|
||||||
file: ifcopenshell.file,
|
file: ifcopenshell.file,
|
||||||
work_time: ifcopenshell.entity_instance,
|
work_time: ifcopenshell.entity_instance,
|
||||||
attributes: Optional[dict[str, Any]] = None,
|
attributes: dict[str, Any],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Edits the attributes of an IfcWorkTime
|
"""Edits the attributes of an IfcWorkTime
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ def edit_work_time(
|
|||||||
:param work_time: The IfcWorkTime entity you want to edit
|
:param work_time: The IfcWorkTime entity you want to edit
|
||||||
:type work_time: ifcopenshell.entity_instance
|
:type work_time: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ def edit_work_time(
|
|||||||
ifcopenshell.api.run("sequence.edit_work_time", model,
|
ifcopenshell.api.run("sequence.edit_work_time", model,
|
||||||
work_time=work_time, attributes={"StartDate": "2000-01-01", "FinishDate": "2000-01-02"})
|
work_time=work_time, attributes={"StartDate": "2000-01-01", "FinishDate": "2000-01-02"})
|
||||||
"""
|
"""
|
||||||
settings = {"work_time": work_time, "attributes": attributes or {}}
|
settings = {"work_time": work_time, "attributes": attributes}
|
||||||
|
|
||||||
for name, value in settings["attributes"].items():
|
for name, value in settings["attributes"].items():
|
||||||
if name in ("Start", "StartDate"):
|
if name in ("Start", "StartDate"):
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import ifcopenshell.util.date
|
|||||||
import ifcopenshell.util.sequence
|
import ifcopenshell.util.sequence
|
||||||
|
|
||||||
|
|
||||||
def recalculate_schedule(file, work_schedule=None) -> None:
|
def recalculate_schedule(file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance) -> None:
|
||||||
"""Calculate the critical path and floats for a work schedule
|
"""Calculate the critical path and floats for a work schedule
|
||||||
|
|
||||||
This implements critical path analysis, using the forward pass and
|
This implements critical path analysis, using the forward pass and
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_task(file, task=None) -> None:
|
def remove_task(file: ifcopenshell.file, task: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a task
|
"""Removes a task
|
||||||
|
|
||||||
All subtasks are also removed recursively. Any relationships such as
|
All subtasks are also removed recursively. Any relationships such as
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def remove_time_period(file, time_period=None) -> None:
|
def remove_time_period(file: ifcopenshell.file, time_period: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a time period
|
"""Removes a time period
|
||||||
|
|
||||||
:param time_period: The IfcTimePeriod to remove.
|
:param time_period: The IfcTimePeriod to remove.
|
||||||
|
|||||||
@@ -17,10 +17,11 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
import ifcopenshell.api
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_work_calendar(file, work_calendar=None) -> None:
|
def remove_work_calendar(file: ifcopenshell.file, work_calendar: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a work calendar
|
"""Removes a work calendar
|
||||||
|
|
||||||
All relationships are also removed, such as if a task is set to use that
|
All relationships are also removed, such as if a task is set to use that
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import ifcopenshell
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_work_plan(file, work_plan=None) -> None:
|
def remove_work_plan(file: ifcopenshell.entity_instance, work_plan: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a work plan
|
"""Removes a work plan
|
||||||
|
|
||||||
Note that schedules that are grouped under the work plan are not
|
Note that schedules that are grouped under the work plan are not
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_work_schedule(file, work_schedule=None) -> None:
|
def remove_work_schedule(file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a work schedule
|
"""Removes a work schedule
|
||||||
|
|
||||||
All tasks in the work schedule are also removed recursively.
|
All tasks in the work schedule are also removed recursively.
|
||||||
|
|||||||
@@ -15,9 +15,10 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def remove_work_time(file, work_time=None) -> None:
|
def remove_work_time(file: ifcopenshell.file, work_time: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a work time
|
"""Removes a work time
|
||||||
|
|
||||||
:param work_time: The IfcWorkTime to remove.
|
:param work_time: The IfcWorkTime to remove.
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def unassign_lag_time(file, rel_sequence=None) -> None:
|
def unassign_lag_time(file: ifcopenshell.file, rel_sequence: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes any lag time in a sequence
|
"""Removes any lag time in a sequence
|
||||||
|
|
||||||
The schedule is cascaded afterwards.
|
The schedule is cascaded afterwards.
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def unassign_process(file, relating_process=None, related_object=None) -> None:
|
def unassign_process(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_process: ifcopenshell.entity_instance,
|
||||||
|
related_object: ifcopenshell.entity_instance,
|
||||||
|
) -> None:
|
||||||
"""Unassigns a process and object relationship
|
"""Unassigns a process and object relationship
|
||||||
|
|
||||||
See ifcopenshell.api.sequence.assign_process for details.
|
See ifcopenshell.api.sequence.assign_process for details.
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def unassign_product(file, relating_product=None, related_object=None) -> None:
|
def unassign_product(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_product: ifcopenshell.entity_instance,
|
||||||
|
related_object: ifcopenshell.entity_instance,
|
||||||
|
) -> None:
|
||||||
"""Unassigns a product and object relationship
|
"""Unassigns a product and object relationship
|
||||||
|
|
||||||
See ifcopenshell.api.sequence.assign_product for details.
|
See ifcopenshell.api.sequence.assign_product for details.
|
||||||
|
|||||||
@@ -15,9 +15,10 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def unassign_recurrence_pattern(file, recurrence_pattern=None) -> None:
|
def unassign_recurrence_pattern(file: ifcopenshell.file, recurrence_pattern: ifcopenshell.entity_instance) -> None:
|
||||||
"""Unassigns a recurrence pattern
|
"""Unassigns a recurrence pattern
|
||||||
|
|
||||||
Note that a recurring task time must have a recurrence pattern, so if
|
Note that a recurring task time must have a recurrence pattern, so if
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def unassign_sequence(file, relating_process=None, related_process=None) -> None:
|
def unassign_sequence(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_process: ifcopenshell.entity_instance,
|
||||||
|
related_process: ifcopenshell.entity_instance,
|
||||||
|
) -> None:
|
||||||
"""Removes a sequence relationship between tasks
|
"""Removes a sequence relationship between tasks
|
||||||
|
|
||||||
:param relating_process: The previous / predecessor task.
|
:param relating_process: The previous / predecessor task.
|
||||||
|
|||||||
@@ -17,15 +17,16 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import Literal
|
||||||
|
|
||||||
|
|
||||||
def add_structural_activity(
|
def add_structural_activity(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
ifc_class="IfcStructuralPlanarAction",
|
applied_load: ifcopenshell.entity_instance,
|
||||||
predefined_type="CONST",
|
structural_member: ifcopenshell.entity_instance,
|
||||||
global_or_local="GLOBAL_COORDS",
|
ifc_class: str = "IfcStructuralPlanarAction",
|
||||||
applied_load=None,
|
predefined_type: str = "CONST",
|
||||||
structural_member=None,
|
global_or_local: Literal["GLOBAL_COORDS", "LOCAL_COORDS"] = "GLOBAL_COORDS",
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Adds a new structural activity
|
"""Adds a new structural activity
|
||||||
|
|
||||||
|
|||||||
+1
-3
@@ -20,7 +20,7 @@ import ifcopenshell
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def add_structural_analysis_model(file) -> None:
|
def add_structural_analysis_model(file: ifcopenshell.file) -> ifcopenshell.entity_instance:
|
||||||
"""Add a new structural analysis model
|
"""Add a new structural analysis model
|
||||||
|
|
||||||
A structural analysis model is a group of all the loads, reactions,
|
A structural analysis model is a group of all the loads, reactions,
|
||||||
@@ -39,8 +39,6 @@ def add_structural_analysis_model(file) -> None:
|
|||||||
# Create a fresh blank structural analysis
|
# Create a fresh blank structural analysis
|
||||||
analysis = ifcopenshell.api.run("structural.add_structural_analysis_model", model)
|
analysis = ifcopenshell.api.run("structural.add_structural_analysis_model", model)
|
||||||
"""
|
"""
|
||||||
settings = {}
|
|
||||||
|
|
||||||
return ifcopenshell.api.run(
|
return ifcopenshell.api.run(
|
||||||
"root.create_entity", file, ifc_class="IfcStructuralAnalysisModel", predefined_type="LOADING_3D"
|
"root.create_entity", file, ifc_class="IfcStructuralAnalysisModel", predefined_type="LOADING_3D"
|
||||||
)
|
)
|
||||||
|
|||||||
+11
-2
@@ -15,9 +15,16 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_structural_boundary_condition(file, name=None, connection=None, ifc_class="IfcBoundaryNodeCondition") -> None:
|
def add_structural_boundary_condition(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
name: Optional[str] = None,
|
||||||
|
connection: Optional[ifcopenshell.entity_instance] = None,
|
||||||
|
ifc_class: str = "IfcBoundaryNodeCondition",
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new structural boundary condition to a structural connection
|
"""Adds a new structural boundary condition to a structural connection
|
||||||
|
|
||||||
The type of boundary condition depends on the connection. Point
|
The type of boundary condition depends on the connection. Point
|
||||||
@@ -60,7 +67,9 @@ def add_structural_boundary_condition(file, name=None, connection=None, ifc_clas
|
|||||||
elif related_connection.is_a("IfcStructuralSurfaceConnection"):
|
elif related_connection.is_a("IfcStructuralSurfaceConnection"):
|
||||||
boundary_class = "IfcBoundaryFaceCondition"
|
boundary_class = "IfcBoundaryFaceCondition"
|
||||||
|
|
||||||
settings["connection"].AppliedCondition = file.create_entity(boundary_class, Name=settings["name"])
|
condition = file.create_entity(boundary_class, Name=settings["name"])
|
||||||
|
settings["connection"].AppliedCondition = condition
|
||||||
|
return condition
|
||||||
else:
|
else:
|
||||||
# add an orphan boundary condition
|
# add an orphan boundary condition
|
||||||
return file.create_entity(settings["ifc_class"], Name=settings["name"])
|
return file.create_entity(settings["ifc_class"], Name=settings["name"])
|
||||||
|
|||||||
@@ -17,9 +17,12 @@
|
|||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_structural_load(file, name=None, ifc_class="IfcStructuralLoadLinearForce") -> None:
|
def add_structural_load(
|
||||||
|
file: ifcopenshell.file, name: Optional[str] = None, ifc_class: str = "IfcStructuralLoadLinearForce"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new structural load
|
"""Adds a new structural load
|
||||||
|
|
||||||
Structural loads may be actions or reactions. A simple load might be a
|
Structural loads may be actions or reactions. A simple load might be a
|
||||||
@@ -42,9 +45,4 @@ def add_structural_load(file, name=None, ifc_class="IfcStructuralLoadLinearForce
|
|||||||
# Create a simple linear load
|
# Create a simple linear load
|
||||||
ifcopenshell.api.run("structural.add_structural_load", model)
|
ifcopenshell.api.run("structural.add_structural_load", model)
|
||||||
"""
|
"""
|
||||||
settings = {
|
return file.create_entity(ifc_class, Name=name)
|
||||||
"name": name,
|
|
||||||
"ifc_class": ifc_class,
|
|
||||||
}
|
|
||||||
|
|
||||||
return file.create_entity(settings["ifc_class"], Name=settings["name"])
|
|
||||||
|
|||||||
@@ -19,7 +19,9 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def add_structural_load_case(file, name="Unnamed", action_type="NOTDEFINED", action_source="NOTDEFINED") -> None:
|
def add_structural_load_case(
|
||||||
|
file: ifcopenshell.file, name: str = "Unnamed", action_type: str = "NOTDEFINED", action_source: str = "NOTDEFINED"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new load case, which is a collection of related load groups
|
"""Adds a new load case, which is a collection of related load groups
|
||||||
|
|
||||||
:param name: The name of the load case
|
:param name: The name of the load case
|
||||||
@@ -34,19 +36,14 @@ def add_structural_load_case(file, name="Unnamed", action_type="NOTDEFINED", act
|
|||||||
:return: The new IfcStructuralLoadCase
|
:return: The new IfcStructuralLoadCase
|
||||||
:rtype: ifcopenshell.entity_instance
|
:rtype: ifcopenshell.entity_instance
|
||||||
"""
|
"""
|
||||||
settings = {
|
|
||||||
"name": name,
|
|
||||||
"action_type": action_type,
|
|
||||||
"action_source": action_source,
|
|
||||||
}
|
|
||||||
|
|
||||||
load_case = ifcopenshell.api.run(
|
load_case = ifcopenshell.api.run(
|
||||||
"root.create_entity",
|
"root.create_entity",
|
||||||
file,
|
file,
|
||||||
ifc_class="IfcStructuralLoadCase",
|
ifc_class="IfcStructuralLoadCase",
|
||||||
predefined_type="LOAD_CASE",
|
predefined_type="LOAD_CASE",
|
||||||
name=settings["name"],
|
name=name
|
||||||
)
|
)
|
||||||
load_case.ActionType = settings["action_type"]
|
load_case.ActionType = action_type
|
||||||
load_case.ActionSource = settings["action_source"]
|
load_case.ActionSource = action_source
|
||||||
return load_case
|
return load_case
|
||||||
|
|||||||
@@ -19,7 +19,9 @@
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def add_structural_load_group(file, name="Unnamed", action_type="NOTDEFINED", action_source="NOTDEFINED") -> None:
|
def add_structural_load_group(
|
||||||
|
file: ifcopenshell.file, name: str = "Unnamed", action_type: str = "NOTDEFINED", action_source: str = "NOTDEFINED"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Adds a new load group, which is a collection of related loads
|
"""Adds a new load group, which is a collection of related loads
|
||||||
|
|
||||||
:param name: The name of the load group
|
:param name: The name of the load group
|
||||||
@@ -34,19 +36,14 @@ def add_structural_load_group(file, name="Unnamed", action_type="NOTDEFINED", ac
|
|||||||
:return: The new IfcStructuralLoadCase
|
:return: The new IfcStructuralLoadCase
|
||||||
:rtype: ifcopenshell.entity_instance
|
:rtype: ifcopenshell.entity_instance
|
||||||
"""
|
"""
|
||||||
settings = {
|
|
||||||
"name": name,
|
|
||||||
"action_type": action_type,
|
|
||||||
"action_source": action_source,
|
|
||||||
}
|
|
||||||
|
|
||||||
load_group = ifcopenshell.api.run(
|
load_group = ifcopenshell.api.run(
|
||||||
"root.create_entity",
|
"root.create_entity",
|
||||||
file,
|
file,
|
||||||
ifc_class="IfcStructuralLoadGroup",
|
ifc_class="IfcStructuralLoadGroup",
|
||||||
predefined_type="LOAD_GROUP",
|
predefined_type="LOAD_GROUP",
|
||||||
name=settings["name"],
|
name=name,
|
||||||
)
|
)
|
||||||
load_group.ActionType = settings["action_type"]
|
load_group.ActionType = action_type
|
||||||
load_group.ActionSource = settings["action_source"]
|
load_group.ActionSource = action_source
|
||||||
return load_group
|
return load_group
|
||||||
|
|||||||
+6
-2
@@ -20,7 +20,11 @@ import ifcopenshell
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
def add_structural_member_connection(file, relating_structural_member=None, related_structural_connection=None) -> None:
|
def add_structural_member_connection(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_structural_member: ifcopenshell.entity_instance,
|
||||||
|
related_structural_connection: ifcopenshell.entity_instance,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Relates a structural member and a structural connection
|
"""Relates a structural member and a structural connection
|
||||||
|
|
||||||
:param relating_structural_member: The IfcStructuralMember to have a
|
:param relating_structural_member: The IfcStructuralMember to have a
|
||||||
@@ -39,7 +43,7 @@ def add_structural_member_connection(file, relating_structural_member=None, rela
|
|||||||
|
|
||||||
for connection in settings["related_structural_connection"].ConnectsStructuralMembers or []:
|
for connection in settings["related_structural_connection"].ConnectsStructuralMembers or []:
|
||||||
if connection.RelatingStructuralMember == settings["relating_structural_member"]:
|
if connection.RelatingStructuralMember == settings["relating_structural_member"]:
|
||||||
return
|
return connection
|
||||||
rel = ifcopenshell.api.run("root.create_entity", file, ifc_class="IfcRelConnectsStructuralMember")
|
rel = ifcopenshell.api.run("root.create_entity", file, ifc_class="IfcRelConnectsStructuralMember")
|
||||||
rel.RelatingStructuralMember = settings["relating_structural_member"]
|
rel.RelatingStructuralMember = settings["relating_structural_member"]
|
||||||
rel.RelatedStructuralConnection = settings["related_structural_connection"]
|
rel.RelatedStructuralConnection = settings["related_structural_connection"]
|
||||||
|
|||||||
+6
-1
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
|
||||||
|
|
||||||
def assign_structural_analysis_model(file, product=None, structural_analysis_model=None) -> None:
|
def assign_structural_analysis_model(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
product: ifcopenshell.entity_instance,
|
||||||
|
structural_analysis_model: ifcopenshell.entity_instance,
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assigns a load or structural member to an analysis model
|
"""Assigns a load or structural member to an analysis model
|
||||||
|
|
||||||
:param product: The structural element that is part of the analysis.
|
:param product: The structural element that is part of the analysis.
|
||||||
@@ -52,3 +56,4 @@ def assign_structural_analysis_model(file, product=None, structural_analysis_mod
|
|||||||
related_objects.add(settings["product"])
|
related_objects.add(settings["product"])
|
||||||
rel.RelatedObjects = list(related_objects)
|
rel.RelatedObjects = list(related_objects)
|
||||||
ifcopenshell.api.run("owner.update_owner_history", file, **{"element": rel})
|
ifcopenshell.api.run("owner.update_owner_history", file, **{"element": rel})
|
||||||
|
return rel
|
||||||
|
|||||||
+6
-2
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_structural_analysis_model(file, structural_analysis_model=None, attributes=None) -> None:
|
def edit_structural_analysis_model(
|
||||||
|
file: ifcopenshell.file, structural_analysis_model: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcStructuralAnalysisModel
|
"""Edits the attributes of an IfcStructuralAnalysisModel
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_structural_analysis_model(file, structural_analysis_model=None, attribu
|
|||||||
:param structural_analysis_model: The IfcStructuralAnalysisModel entity you want to edit
|
:param structural_analysis_model: The IfcStructuralAnalysisModel entity you want to edit
|
||||||
:type structural_analysis_model: ifcopenshell.entity_instance
|
:type structural_analysis_model: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
|
|||||||
+7
-3
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_structural_boundary_condition(file, condition=None, attributes=None) -> None:
|
def edit_structural_boundary_condition(
|
||||||
|
file: ifcopenshell.file, condition: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcBoundaryCondition
|
"""Edits the attributes of an IfcBoundaryCondition
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,11 +30,11 @@ def edit_structural_boundary_condition(file, condition=None, attributes=None) ->
|
|||||||
:param condition: The IfcBoundaryCondition entity you want to edit
|
:param condition: The IfcBoundaryCondition entity you want to edit
|
||||||
:type condition: ifcopenshell.entity_instance
|
:type condition: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
settings = {"condition": condition, "attributes": attributes or {}}
|
settings = {"condition": condition, "attributes": attributes}
|
||||||
|
|
||||||
for name, data in settings["attributes"].items():
|
for name, data in settings["attributes"].items():
|
||||||
if data["type"] == "string" or data["type"] == "null":
|
if data["type"] == "string" or data["type"] == "null":
|
||||||
|
|||||||
+13
-7
@@ -15,26 +15,32 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def edit_structural_connection_cs(file, structural_item=None, axis=None, ref_direction=None) -> None:
|
def edit_structural_connection_cs(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
structural_item: ifcopenshell.entity_instance,
|
||||||
|
axis: tuple[float, float, float] = (0.0, 0.0, 1.0),
|
||||||
|
ref_direction: tuple[float, float, float] = (1.0, 0.0, 0.0),
|
||||||
|
) -> None:
|
||||||
"""Edits the coordinate system of a structural connection
|
"""Edits the coordinate system of a structural connection
|
||||||
|
|
||||||
:param structural_item: The IfcStructuralItem you want to modify.
|
:param structural_item: The IfcStructuralItem you want to modify.
|
||||||
:type structural_item: ifcopenshell.entity_instance
|
:type structural_item: ifcopenshell.entity_instance
|
||||||
:param axis: The unit Z axis vector defined as a list of 3 floats.
|
:param axis: The unit Z axis vector defined as a list of 3 floats.
|
||||||
Defaults to [0., 0., 1.].
|
Defaults to (0., 0., 1.).
|
||||||
:type axis: list[float]
|
:type axis: tuple[float, float, float]
|
||||||
:param ref_direction: The unit X axis vector defined as a list of 3
|
:param ref_direction: The unit X axis vector defined as a list of 3
|
||||||
floats. Defaults to [1., 0., 0.].
|
floats. Defaults to (1., 0., 0.).
|
||||||
:type ref_direction: list[float]
|
:type ref_direction: tuple[float, float, float]
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
settings = {
|
settings = {
|
||||||
"structural_item": structural_item,
|
"structural_item": structural_item,
|
||||||
"axis": axis or [0.0, 0.0, 1.0],
|
"axis": axis,
|
||||||
"ref_direction": ref_direction or [1.0, 0.0, 0.0],
|
"ref_direction": ref_direction,
|
||||||
}
|
}
|
||||||
|
|
||||||
if settings["structural_item"].ConditionCoordinateSystem is None:
|
if settings["structural_item"].ConditionCoordinateSystem is None:
|
||||||
|
|||||||
@@ -15,20 +15,25 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def edit_structural_item_axis(file, structural_item=None, axis=None) -> None:
|
def edit_structural_item_axis(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
structural_item: ifcopenshell.entity_instance,
|
||||||
|
axis: tuple[float, float, float] = (0.0, 0.0, 1.0),
|
||||||
|
) -> None:
|
||||||
"""Edits the coordinate system of a structural connection
|
"""Edits the coordinate system of a structural connection
|
||||||
|
|
||||||
:param structural_item: The IfcStructuralItem you want to modify.
|
:param structural_item: The IfcStructuralItem you want to modify.
|
||||||
:type structural_item: ifcopenshell.entity_instance
|
:type structural_item: ifcopenshell.entity_instance
|
||||||
:param axis: The unit Z axis vector defined as a list of 3 floats.
|
:param axis: The unit Z axis vector defined as a list of 3 floats.
|
||||||
Defaults to [0., 0., 1.].
|
Defaults to (0., 0., 1.).
|
||||||
:type axis: list[float]
|
:type axis: tuple[float, float, float]
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
settings = {"structural_item": structural_item, "axis": axis or [0.0, 0.0, 1.0]}
|
settings = {"structural_item": structural_item, "axis": axis}
|
||||||
|
|
||||||
if len(file.get_inverse(settings["structural_item"].Axis)) == 1:
|
if len(file.get_inverse(settings["structural_item"].Axis)) == 1:
|
||||||
file.remove(settings["structural_item"].Axis)
|
file.remove(settings["structural_item"].Axis)
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_structural_load(file, structural_load=None, attributes=None) -> None:
|
def edit_structural_load(
|
||||||
|
file: ifcopenshell.file, structural_load: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcStructuralLoad
|
"""Edits the attributes of an IfcStructuralLoad
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_structural_load(file, structural_load=None, attributes=None) -> None:
|
|||||||
:param structural_load: The IfcStructuralLoad entity you want to edit
|
:param structural_load: The IfcStructuralLoad entity you want to edit
|
||||||
:type structural_load: ifcopenshell.entity_instance
|
:type structural_load: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_structural_load_case(file, load_case=None, attributes=None) -> None:
|
def edit_structural_load_case(
|
||||||
|
file: ifcopenshell.file, load_case: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcStructuralLoadCase
|
"""Edits the attributes of an IfcStructuralLoadCase
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_structural_load_case(file, load_case=None, attributes=None) -> None:
|
|||||||
:param load_case: The IfcStructuralLoadCase entity you want to edit
|
:param load_case: The IfcStructuralLoadCase entity you want to edit
|
||||||
:type load_case: ifcopenshell.entity_instance
|
:type load_case: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
|
|||||||
+3
-1
@@ -20,7 +20,9 @@ import ifcopenshell
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_structural_analysis_model(file, structural_analysis_model=None) -> None:
|
def remove_structural_analysis_model(
|
||||||
|
file: ifcopenshell.file, structural_analysis_model: ifcopenshell.entity_instance
|
||||||
|
) -> None:
|
||||||
"""Removes an analysis model
|
"""Removes an analysis model
|
||||||
|
|
||||||
Note that the contents of an analysis model are currently preserved.
|
Note that the contents of an analysis model are currently preserved.
|
||||||
|
|||||||
+8
-2
@@ -15,16 +15,22 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def remove_structural_boundary_condition(file, connection=None, boundary_condition=None) -> None:
|
def remove_structural_boundary_condition(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
connection: Optional[ifcopenshell.entity_instance] = None,
|
||||||
|
boundary_condition: Optional[ifcopenshell.entity_instance] = None,
|
||||||
|
) -> None:
|
||||||
"""Removes a condition from a connection, or an orphased boundary condition
|
"""Removes a condition from a connection, or an orphased boundary condition
|
||||||
|
|
||||||
:param connection: The IfcStructuralConnection to remove the condition
|
:param connection: The IfcStructuralConnection to remove the condition
|
||||||
from. If omitted, it is assumed to be an orphaned condition.
|
from. If omitted, it is assumed to be an orphaned condition.
|
||||||
:type connection: ifcopenshell.entity_instance,optional
|
:type connection: ifcopenshell.entity_instance,optional
|
||||||
:param boundary_condition: The IfcBoundaryCondition to remove.
|
:param boundary_condition: The IfcBoundaryCondition to remove.
|
||||||
:type boundary_condition: ifcopenshell.entity_instance
|
:type boundary_condition: ifcopenshell.entity_instance, optional.
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_structural_connection_condition(file, relation=None) -> None:
|
def remove_structural_connection_condition(file: ifcopenshell.file, relation: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a relationship between a connection and a condition
|
"""Removes a relationship between a connection and a condition
|
||||||
|
|
||||||
The condition and the member itself is preserved.
|
The condition and the member itself is preserved.
|
||||||
|
|||||||
@@ -15,9 +15,10 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def remove_structural_load(file, structural_load=None) -> None:
|
def remove_structural_load(file: ifcopenshell.file, structural_load: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a structural load
|
"""Removes a structural load
|
||||||
|
|
||||||
:param structural_load: The IfcStructuralLoad to remove.
|
:param structural_load: The IfcStructuralLoad to remove.
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_structural_load_case(file, load_case=None) -> None:
|
def remove_structural_load_case(file: ifcopenshell.file, load_case: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a structural load case
|
"""Removes a structural load case
|
||||||
|
|
||||||
:param load_case: The IfcStructuralLoadCase to remove.
|
:param load_case: The IfcStructuralLoadCase to remove.
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_structural_load_group(file, load_group=None) -> None:
|
def remove_structural_load_group(file: ifcopenshell.file, load_group: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a structural load group
|
"""Removes a structural load group
|
||||||
|
|
||||||
:param load_group: The IfcStructuralLoadGroup to remove.
|
:param load_group: The IfcStructuralLoadGroup to remove.
|
||||||
|
|||||||
+5
-1
@@ -21,7 +21,11 @@ import ifcopenshell.api
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def unassign_structural_analysis_model(file, product=None, structural_analysis_model=None) -> None:
|
def unassign_structural_analysis_model(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
product: ifcopenshell.entity_instance,
|
||||||
|
structural_analysis_model: ifcopenshell.entity_instance,
|
||||||
|
) -> None:
|
||||||
"""Removes a relationship between a structural element and the analysis model
|
"""Removes a relationship between a structural element and the analysis model
|
||||||
|
|
||||||
:param product: The structural element that is part of the analysis.
|
:param product: The structural element that is part of the analysis.
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_style(file, name=None, ifc_class="IfcSurfaceStyle") -> None:
|
def add_style(
|
||||||
|
file: ifcopenshell.file, name: Optional[str] = None, ifc_class="IfcSurfaceStyle"
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Add a new presentation style
|
"""Add a new presentation style
|
||||||
|
|
||||||
A presentation style is a container of visual settings (called
|
A presentation style is a container of visual settings (called
|
||||||
@@ -54,8 +58,10 @@ def add_style(file, name=None, ifc_class="IfcSurfaceStyle") -> None:
|
|||||||
# Create a new surface style
|
# Create a new surface style
|
||||||
style = ifcopenshell.api.run("style.add_style", model)
|
style = ifcopenshell.api.run("style.add_style", model)
|
||||||
"""
|
"""
|
||||||
settings = {"name": name, "ifc_class": ifc_class}
|
|
||||||
|
|
||||||
if settings["ifc_class"] == "IfcSurfaceStyle":
|
kwargs = {"Name": name}
|
||||||
|
if ifc_class == "IfcSurfaceStyle":
|
||||||
# Name is filled out because Revit treats this incorrectly as the material name
|
# Name is filled out because Revit treats this incorrectly as the material name
|
||||||
return file.createIfcSurfaceStyle(settings["name"], "BOTH")
|
kwargs["Side"] = "BOTH"
|
||||||
|
|
||||||
|
return file.create_entity(ifc_class, **kwargs)
|
||||||
|
|||||||
@@ -18,9 +18,15 @@
|
|||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
|
||||||
def add_surface_style(file, style=None, ifc_class="IfcSurfaceStyleShading", attributes=None) -> None:
|
def add_surface_style(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
style: ifcopenshell.entity_instance,
|
||||||
|
ifc_class: str = "IfcSurfaceStyleShading",
|
||||||
|
attributes: Optional[dict[str, Any]] = None,
|
||||||
|
) -> None:
|
||||||
"""Adds a new presentation item to a surface style
|
"""Adds a new presentation item to a surface style
|
||||||
|
|
||||||
A surface style can have multiple different types of presentation items
|
A surface style can have multiple different types of presentation items
|
||||||
|
|||||||
@@ -15,18 +15,29 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
from __future__ import annotations
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
|
||||||
def add_surface_textures(file, material=None, uv_maps=None, textures=None) -> None:
|
def add_surface_textures(
|
||||||
|
file: ifcopenshell.entity_instance,
|
||||||
|
material: Optional[bpy.types.Material] = None,
|
||||||
|
textures: Optional[list[dict]] = None,
|
||||||
|
uv_maps: Optional[list[ifcopenshell.entity_instance]] = None,
|
||||||
|
) -> list[ifcopenshell.entity_instance]:
|
||||||
"""Add surface texture based on a Blender material definition or texture data.
|
"""Add surface texture based on a Blender material definition or texture data.
|
||||||
|
|
||||||
|
Either `material` or `textures` should be provided.
|
||||||
|
|
||||||
:param material: The Blender material definition with a node tree that
|
:param material: The Blender material definition with a node tree that
|
||||||
is compatible with glTF. See one of the valid combinations here:
|
is compatible with glTF. See one of the valid combinations here:
|
||||||
https://docs.blender.org/manual/en/dev/addons/import_export/scene_gltf2.html
|
https://docs.blender.org/manual/en/dev/addons/import_export/scene_gltf2.html
|
||||||
:type material: bpy.types.Material
|
:type material: bpy.types.Material, optional
|
||||||
:param uv_maps: A list of IfcIndexedTextureMap for any
|
:param uv_maps: A list of IfcIndexedTextureMap for any
|
||||||
IfcTessellatedFaceSets that the representation has, obtained from
|
IfcTessellatedFaceSets that the representation has, obtained from
|
||||||
the HasTextures attribute.
|
the HasTextures attribute.
|
||||||
@@ -44,7 +55,7 @@ def add_surface_textures(file, material=None, uv_maps=None, textures=None) -> No
|
|||||||
based on geometry);
|
based on geometry);
|
||||||
* `Camera` - IfcTextureCoordinateGenerator with mode COORD_EYE (autogenerated UV
|
* `Camera` - IfcTextureCoordinateGenerator with mode COORD_EYE (autogenerated UV
|
||||||
based on camera position)
|
based on camera position)
|
||||||
:type textures: list[dict]
|
:type textures: list[dict], optional
|
||||||
:return: A list of IfcImageTexture
|
:return: A list of IfcImageTexture
|
||||||
:rtype: list[ifcopenshell.entity_instance]
|
:rtype: list[ifcopenshell.entity_instance]
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -22,7 +22,11 @@ import ifcopenshell.util.element
|
|||||||
|
|
||||||
|
|
||||||
def assign_material_style(
|
def assign_material_style(
|
||||||
file, material=None, style=None, context=None, should_use_presentation_style_assignment=False
|
file: ifcopenshell.file,
|
||||||
|
material: ifcopenshell.entity_instance,
|
||||||
|
style: ifcopenshell.entity_instance,
|
||||||
|
context: ifcopenshell.entity_instance,
|
||||||
|
should_use_presentation_style_assignment: bool = False,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Assigns a style to a material
|
"""Assigns a style to a material
|
||||||
|
|
||||||
|
|||||||
@@ -15,15 +15,16 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def assign_representation_styles(
|
def assign_representation_styles(
|
||||||
file,
|
file: ifcopenshell.file,
|
||||||
shape_representation=None,
|
shape_representation: ifcopenshell.entity_instance,
|
||||||
styles=None,
|
styles: list[ifcopenshell.entity_instance],
|
||||||
replace_previous_same_type_style=True,
|
replace_previous_same_type_style: bool = True,
|
||||||
should_use_presentation_style_assignment=False,
|
should_use_presentation_style_assignment: bool = False,
|
||||||
) -> None:
|
) -> list[ifcopenshell.entity_instance]:
|
||||||
"""Assigns a style directly to an object representation
|
"""Assigns a style directly to an object representation
|
||||||
|
|
||||||
A style may either be assigned directly to an object's representation,
|
A style may either be assigned directly to an object's representation,
|
||||||
@@ -56,7 +57,7 @@ def assign_representation_styles(
|
|||||||
that this is no longer a valid IFC. Blame Autodesk.
|
that this is no longer a valid IFC. Blame Autodesk.
|
||||||
:type should_use_presentation_style_assignment: bool
|
:type should_use_presentation_style_assignment: bool
|
||||||
:return: List of created IfcStyledItems
|
:return: List of created IfcStyledItems
|
||||||
:rtype: ifcopenshell.entity_instance
|
:rtype: list[ifcopenshell.entity_instance]
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_presentation_style(file, style=None, attributes=None) -> None:
|
def edit_presentation_style(
|
||||||
|
file: ifcopenshell.file, style: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcPresentationStyle
|
"""Edits the attributes of an IfcPresentationStyle
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -26,7 +30,7 @@ def edit_presentation_style(file, style=None, attributes=None) -> None:
|
|||||||
:param style: The IfcPresentationStyle entity you want to edit
|
:param style: The IfcPresentationStyle entity you want to edit
|
||||||
:type style: ifcopenshell.entity_instance
|
:type style: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,13 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
def edit_surface_style(file, style=None, attributes=None) -> None:
|
def edit_surface_style(
|
||||||
|
file: ifcopenshell.file, style: ifcopenshell.entity_instance, attributes: dict[str, Any]
|
||||||
|
) -> None:
|
||||||
"""Edits the attributes of an IfcPresentationItem
|
"""Edits the attributes of an IfcPresentationItem
|
||||||
|
|
||||||
For more information about the attributes and data types of an
|
For more information about the attributes and data types of an
|
||||||
@@ -34,7 +38,7 @@ def edit_surface_style(file, style=None, attributes=None) -> None:
|
|||||||
:param style: The IfcPresentationStyle entity you want to edit
|
:param style: The IfcPresentationStyle entity you want to edit
|
||||||
:type style: ifcopenshell.entity_instance
|
:type style: ifcopenshell.entity_instance
|
||||||
:param attributes: a dictionary of attribute names and values.
|
:param attributes: a dictionary of attribute names and values.
|
||||||
:type attributes: dict, optional
|
:type attributes: dict
|
||||||
:return: None
|
:return: None
|
||||||
:rtype: None
|
:rtype: None
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,11 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell.api
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_style(file, style=None) -> None:
|
def remove_style(file: ifcopenshell.file, style: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a presentation style
|
"""Removes a presentation style
|
||||||
|
|
||||||
All of the presentation items of the style will also be removed.
|
All of the presentation items of the style will also be removed.
|
||||||
|
|||||||
@@ -15,9 +15,10 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def remove_styled_representation(file, representation=None) -> None:
|
def remove_styled_representation(file: ifcopenshell.file, representation: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a styled representation
|
"""Removes a styled representation
|
||||||
|
|
||||||
Styled representations are typically associated with materials. This
|
Styled representations are typically associated with materials. This
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import ifcopenshell
|
|||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def remove_surface_style(file, style=None) -> None:
|
def remove_surface_style(file: ifcopenshell.file, style: ifcopenshell.entity_instance) -> None:
|
||||||
"""Removes a presentation item from a presentation style
|
"""Removes a presentation item from a presentation style
|
||||||
|
|
||||||
:param style: The IfcPresentationItem to remove.
|
:param style: The IfcPresentationItem to remove.
|
||||||
|
|||||||
@@ -18,9 +18,16 @@
|
|||||||
|
|
||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
|
import ifcopenshell.api
|
||||||
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
|
||||||
def unassign_material_style(file, material=None, style=None, context=None) -> None:
|
def unassign_material_style(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
material: ifcopenshell.entity_instance,
|
||||||
|
style: ifcopenshell.entity_instance,
|
||||||
|
context: ifcopenshell.entity_instance,
|
||||||
|
) -> None:
|
||||||
"""Unassigns a style to a material
|
"""Unassigns a style to a material
|
||||||
|
|
||||||
This does the inverse of assign_material_style.
|
This does the inverse of assign_material_style.
|
||||||
|
|||||||
@@ -15,10 +15,14 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
import ifcopenshell
|
||||||
|
|
||||||
|
|
||||||
def unassign_representation_styles(
|
def unassign_representation_styles(
|
||||||
file, shape_representation=None, styles=None, should_use_presentation_style_assignment=False
|
file: ifcopenshell.file,
|
||||||
|
shape_representation: ifcopenshell.entity_instance,
|
||||||
|
styles: list[ifcopenshell.entity_instance],
|
||||||
|
should_use_presentation_style_assignment: bool = False,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Unassigns styles directly assigned to an object representation
|
"""Unassigns styles directly assigned to an object representation
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,10 @@
|
|||||||
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def add_port(file, element=None) -> None:
|
def add_port(file: ifcopenshell.file, element: Optional[ifcopenshell.entity_instance] = None) -> None:
|
||||||
"""Adds a new distribution port to an element
|
"""Adds a new distribution port to an element
|
||||||
|
|
||||||
A distribution port represents a connection point on an element, where
|
A distribution port represents a connection point on an element, where
|
||||||
@@ -34,7 +35,7 @@ def add_port(file, element=None) -> None:
|
|||||||
|
|
||||||
:param element: The IfcDistributionElement you want to add a
|
:param element: The IfcDistributionElement you want to add a
|
||||||
distribution port to.
|
distribution port to.
|
||||||
:type element: ifcopenshell.entity_instance
|
:type element: ifcopenshell.entity_instance, optional
|
||||||
:return: The newly created IfcDistributionPort
|
:return: The newly created IfcDistributionPort
|
||||||
:rtype: ifcopenshell.entity_instance
|
:rtype: ifcopenshell.entity_instance
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,14 @@
|
|||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
|
|
||||||
def assign_flow_control(file, relating_flow_element=None, related_flow_control=None) -> None:
|
def assign_flow_control(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
relating_flow_element: ifcopenshell.entity_instance,
|
||||||
|
related_flow_control: ifcopenshell.entity_instance,
|
||||||
|
) -> Union[ifcopenshell.entity_instance, None]:
|
||||||
"""Assigns to the flow element control element that either sense or control
|
"""Assigns to the flow element control element that either sense or control
|
||||||
some aspect of the flow element.
|
some aspect of the flow element.
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,9 @@ import ifcopenshell.guid
|
|||||||
import ifcopenshell.util.placement
|
import ifcopenshell.util.placement
|
||||||
|
|
||||||
|
|
||||||
def assign_port(file, element=None, port=None) -> None:
|
def assign_port(
|
||||||
|
file: ifcopenshell.file, element: ifcopenshell.entity_instance, port: ifcopenshell.entity_instance
|
||||||
|
) -> ifcopenshell.entity_instance:
|
||||||
"""Assigns a port to an element
|
"""Assigns a port to an element
|
||||||
|
|
||||||
If you have an orphaned port, you may assign it to a distribution
|
If you have an orphaned port, you may assign it to a distribution
|
||||||
@@ -73,7 +75,7 @@ class Usecase:
|
|||||||
|
|
||||||
for rel in rels:
|
for rel in rels:
|
||||||
if self.settings["port"] in rel.RelatedObjects:
|
if self.settings["port"] in rel.RelatedObjects:
|
||||||
return
|
return rel
|
||||||
|
|
||||||
if rels:
|
if rels:
|
||||||
rel = rels[0]
|
rel = rels[0]
|
||||||
@@ -97,7 +99,7 @@ class Usecase:
|
|||||||
def execute_ifc2x3(self):
|
def execute_ifc2x3(self):
|
||||||
for rel in self.settings["element"].HasPorts or []:
|
for rel in self.settings["element"].HasPorts or []:
|
||||||
if rel.RelatingPort == self.settings["port"]:
|
if rel.RelatingPort == self.settings["port"]:
|
||||||
return
|
return rel
|
||||||
rel = self.file.create_entity(
|
rel = self.file.create_entity(
|
||||||
"IfcRelConnectsPortToElement",
|
"IfcRelConnectsPortToElement",
|
||||||
GlobalId=ifcopenshell.guid.new(),
|
GlobalId=ifcopenshell.guid.new(),
|
||||||
|
|||||||
@@ -20,9 +20,16 @@ import ifcopenshell
|
|||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell.guid
|
import ifcopenshell.guid
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
def connect_port(file, port1=None, port2=None, direction="NOTDEFINED", element=None) -> None:
|
def connect_port(
|
||||||
|
file: ifcopenshell.file,
|
||||||
|
port1: ifcopenshell.entity_instance,
|
||||||
|
port2: ifcopenshell.entity_instance,
|
||||||
|
direction: str = "NOTDEFINED",
|
||||||
|
element: Optional[ifcopenshell.entity_instance] = None,
|
||||||
|
) -> None:
|
||||||
"""Connects two ports together
|
"""Connects two ports together
|
||||||
|
|
||||||
A distribution element (e.g. a duct) may be connected to another
|
A distribution element (e.g. a duct) may be connected to another
|
||||||
@@ -61,7 +68,7 @@ def connect_port(file, port1=None, port2=None, direction="NOTDEFINED", element=N
|
|||||||
connectivity is made, such as a segment or fitting. This is only to
|
connectivity is made, such as a segment or fitting. This is only to
|
||||||
be used for implicit port connectivity where the segments and
|
be used for implicit port connectivity where the segments and
|
||||||
fittings are less important.
|
fittings are less important.
|
||||||
:type element: ifcopenshell.entity_instance
|
:type element: ifcopenshell.entity_instance, optional
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user