This commit is contained in:
Andrej730
2024-05-15 10:55:29 +05:00
parent 2fa30be0d0
commit bb8e84e5ec
48 changed files with 978 additions and 410 deletions
@@ -19,9 +19,12 @@
import ifcopenshell
import ifcopenshell.api
import ifcopenshell.guid
from typing import Optional
def add_group(file, Name="Unnamed", Description=None) -> None:
def add_group(
file: ifcopenshell.file, Name: str = "Unnamed", Description: Optional[str] = None
) -> ifcopenshell.entity_instance:
"""Adds a new group
An IFC group is an arbitrary collection of products, which are typically
@@ -15,9 +15,11 @@
#
# You should have received a copy of the GNU Lesser General Public License
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell
from typing import Any
def edit_group(file, group=None, attributes=None) -> None:
def edit_group(file: ifcopenshell.file, group: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None:
"""Edits the attributes of an IfcGroup
For more information about the attributes and data types of an
@@ -26,7 +28,7 @@ def edit_group(file, group=None, attributes=None) -> None:
:param group: The IfcGroup entity you want to edit
:type group: ifcopenshell.entity_instance
:param attributes: a dictionary of attribute names and values.
:type attributes: dict, optional
:type attributes: dict
:return: None
:rtype: None
@@ -38,7 +40,7 @@ def edit_group(file, group=None, attributes=None) -> None:
ifcopenshell.api.run("group.edit_group", model,
group=group, attributes={"Description": "All furniture and joinery included in the unit"})
"""
settings = {"group": group, "attributes": attributes or {}}
settings = {"group": group, "attributes": attributes}
for name, value in settings["attributes"].items():
setattr(settings["group"], name, value)
@@ -21,7 +21,7 @@ import ifcopenshell.api
import ifcopenshell.util.element
def remove_group(file, group=None) -> None:
def remove_group(file: ifcopenshell.file, group: ifcopenshell.entity_instance) -> None:
"""Removes a group
All products assigned to the group will remain, but the relationship to
@@ -21,7 +21,9 @@ import ifcopenshell.api
import ifcopenshell.guid
def update_group_products(file, group=None, products=None) -> None:
def update_group_products(
file: ifcopenshell.file, group: ifcopenshell.entity_instance, products: list[ifcopenshell.entity_instance]
) -> ifcopenshell.entity_instance:
"""Sets a group products to be an explicit list of products
Any previous products assigned to that group will have their assignment