mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-11 02:02:22 +00:00
Generate functions for all API usecases for better static code features. See #2693.
This commit is contained in:
+40
-45
@@ -17,55 +17,50 @@
|
||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
class Usecase:
|
||||
def __init__(self, file, name=None, connection=None, ifc_class="IfcBoundaryNodeCondition"):
|
||||
"""Adds a new structural boundary condition to a structural connection
|
||||
def add_structural_boundary_condition(file, name=None, connection=None, ifc_class="IfcBoundaryNodeCondition") -> None:
|
||||
"""Adds a new structural boundary condition to a structural connection
|
||||
|
||||
The type of boundary condition depends on the connection. Point
|
||||
connections will have a node condition, curve connections will have an
|
||||
edge condition, and surface connections will have a face condition.
|
||||
The type of boundary condition depends on the connection. Point
|
||||
connections will have a node condition, curve connections will have an
|
||||
edge condition, and surface connections will have a face condition.
|
||||
|
||||
:param name: The name of the boundary condition.
|
||||
:type name: str,optional
|
||||
:param connection: The IfcStructuralConnection to apply the boundary
|
||||
condition to. This will determine the type of condition that is
|
||||
created. If no connection is supplied, an orphan boundary condition
|
||||
will be created using the ifc_class that you specify.
|
||||
:type connection: ifcopenshell.entity_instance,optional
|
||||
:param ifc_class: The class of IfcBoundaryCondition to create, only
|
||||
relevant if you do not specify a connection and want to create an
|
||||
orphaned boundary condition.
|
||||
:type ifc_class: str,optional
|
||||
:return: The newly created IfcBoundaryCondition
|
||||
:rtype: ifcopenshell.entity_instance
|
||||
:param name: The name of the boundary condition.
|
||||
:type name: str,optional
|
||||
:param connection: The IfcStructuralConnection to apply the boundary
|
||||
condition to. This will determine the type of condition that is
|
||||
created. If no connection is supplied, an orphan boundary condition
|
||||
will be created using the ifc_class that you specify.
|
||||
:type connection: ifcopenshell.entity_instance,optional
|
||||
:param ifc_class: The class of IfcBoundaryCondition to create, only
|
||||
relevant if you do not specify a connection and want to create an
|
||||
orphaned boundary condition.
|
||||
:type ifc_class: str,optional
|
||||
:return: The newly created IfcBoundaryCondition
|
||||
:rtype: ifcopenshell.entity_instance
|
||||
|
||||
Example:
|
||||
Example:
|
||||
|
||||
.. code:: python
|
||||
.. code:: python
|
||||
|
||||
ifcopenshell.api.run("structural.add_structural_boundary_condition", model, connection=connection)
|
||||
"""
|
||||
self.file = file
|
||||
self.settings = {"name": name, "connection": connection, "ifc_class": ifc_class}
|
||||
ifcopenshell.api.run("structural.add_structural_boundary_condition", model, connection=connection)
|
||||
"""
|
||||
settings = {"name": name, "connection": connection, "ifc_class": ifc_class}
|
||||
|
||||
def execute(self):
|
||||
if self.settings["connection"]:
|
||||
# assign boundary condition to a connection
|
||||
if self.settings["connection"].is_a("IfcRelConnectsStructuralMember"):
|
||||
related_connection = self.settings["connection"].RelatedStructuralConnection
|
||||
else:
|
||||
related_connection = self.settings["connection"]
|
||||
|
||||
if related_connection.is_a("IfcStructuralPointConnection"):
|
||||
boundary_class = "IfcBoundaryNodeCondition"
|
||||
elif related_connection.is_a("IfcStructuralCurveConnection"):
|
||||
boundary_class = "IfcBoundaryEdgeCondition"
|
||||
elif related_connection.is_a("IfcStructuralSurfaceConnection"):
|
||||
boundary_class = "IfcBoundaryFaceCondition"
|
||||
|
||||
self.settings["connection"].AppliedCondition = self.file.create_entity(
|
||||
boundary_class, Name=self.settings["name"]
|
||||
)
|
||||
if settings["connection"]:
|
||||
# assign boundary condition to a connection
|
||||
if settings["connection"].is_a("IfcRelConnectsStructuralMember"):
|
||||
related_connection = settings["connection"].RelatedStructuralConnection
|
||||
else:
|
||||
# add an orphan boundary condition
|
||||
return self.file.create_entity(self.settings["ifc_class"], Name=self.settings["name"])
|
||||
related_connection = settings["connection"]
|
||||
|
||||
if related_connection.is_a("IfcStructuralPointConnection"):
|
||||
boundary_class = "IfcBoundaryNodeCondition"
|
||||
elif related_connection.is_a("IfcStructuralCurveConnection"):
|
||||
boundary_class = "IfcBoundaryEdgeCondition"
|
||||
elif related_connection.is_a("IfcStructuralSurfaceConnection"):
|
||||
boundary_class = "IfcBoundaryFaceCondition"
|
||||
|
||||
settings["connection"].AppliedCondition = file.create_entity(boundary_class, Name=settings["name"])
|
||||
else:
|
||||
# add an orphan boundary condition
|
||||
return file.create_entity(settings["ifc_class"], Name=settings["name"])
|
||||
|
||||
Reference in New Issue
Block a user