Generate functions for all API usecases for better static code features. See #2693.

This commit is contained in:
Dion Moult
2024-05-06 14:35:39 +10:00
parent 10f894e2ea
commit d11ec67129
330 changed files with 13283 additions and 13751 deletions
@@ -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"])