From 665c96a3ccabcd7801db67856c7d6963ab658033 Mon Sep 17 00:00:00 2001 From: Laura Bobillier Date: Tue, 2 Dec 2025 14:51:16 +0100 Subject: [PATCH 1/2] [API-482] Updated version and documentation for multi layer cover controller --- docs/documentation/enums.md | 16 +- pyproject.toml | 2 +- src/cadwork/multi_layer_cover_type.pyi | 29 +++ src/cadwork/multi_layer_subtype.pyi | 33 +++ src/multi_layer_cover_controller/__init__.pyi | 240 ++++++++++++++++++ 5 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 src/cadwork/multi_layer_cover_type.pyi create mode 100644 src/cadwork/multi_layer_subtype.pyi diff --git a/docs/documentation/enums.md b/docs/documentation/enums.md index 614bb71..8b127f0 100644 --- a/docs/documentation/enums.md +++ b/docs/documentation/enums.md @@ -60,13 +60,27 @@ show_root_heading: false show_source: true -## Multi Layer Cover Type +## Multi Layer Type ::: cadwork.multi_layer_type rendering: show_root_heading: false show_source: true +## Multi Layer Cover Subtype + +::: cadwork.multi_layer_subtype + rendering: + show_root_heading: false + show_source: true + +## Multi Layer Cover Type + +::: cadwork.multi_layer_cover_type + rendering: + show_root_heading: false + show_source: true + ## BIMteam upload ::: cadwork.bim_team_upload_result_code diff --git a/pyproject.toml b/pyproject.toml index ae78ed4..67a3ab8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cwapi3d" -version = "32.301.0" +version = "32.302.0" authors = [{ name = "Cadwork", email = "it@cadwork.ca" }] requires-python = ">= 3.12" description = 'Python bindings for CwAPI3D' diff --git a/src/cadwork/multi_layer_cover_type.pyi b/src/cadwork/multi_layer_cover_type.pyi new file mode 100644 index 0000000..c632e97 --- /dev/null +++ b/src/cadwork/multi_layer_cover_type.pyi @@ -0,0 +1,29 @@ +from enum import IntEnum, unique + + +@unique +class multi_layer_cover_type(IntEnum): + """multi layer cover type + + Examples: + >>> cadwork.multi_layer_cover_type.framedWall + framedWall + """ + framedWall = 0 + """""" + solidWall = 1 + """""" + logWall = 2 + """""" + framedRoof = 3 + """""" + solidRoof = 4 + """""" + framedFloor = 5 + """""" + solidFloor = 6 + """""" + + def __int__(self) -> int: + return self.value + diff --git a/src/cadwork/multi_layer_subtype.pyi b/src/cadwork/multi_layer_subtype.pyi new file mode 100644 index 0000000..05ad725 --- /dev/null +++ b/src/cadwork/multi_layer_subtype.pyi @@ -0,0 +1,33 @@ +from enum import IntEnum, unique + + +@unique +class multi_layer_subtype(IntEnum): + """multi layer subtype + + Examples: + >>> cadwork.multi_layer_subtype.undefined + undefined + """ + undefined = 0 + """""" + loadBearingFrameStructure = 1 + """""" + solidStructure = 2 + """""" + straightEdge = 3 + """""" + biasEdge = 4 + """""" + vertical = 5 + """""" + horizontal = 6 + """""" + air = 7 + """""" + nonLoadBearingFrameStructure = 8 + """""" + + def __int__(self) -> int: + return self.value + diff --git a/src/multi_layer_cover_controller/__init__.pyi b/src/multi_layer_cover_controller/__init__.pyi index ee46e45..a0d0f6d 100644 --- a/src/multi_layer_cover_controller/__init__.pyi +++ b/src/multi_layer_cover_controller/__init__.pyi @@ -1,4 +1,5 @@ from typing import List +from cadwork import multi_layer_cover_type from cadwork.api_types import * from cadwork.multi_layer_type import multi_layer_type @@ -170,6 +171,7 @@ def set_cover_color(set_id: MultiLayerSetId, cover_color: ColorId) -> None: def get_multi_layer_walls() -> List[MultiLayerSetId]: """Gets all multi layer wall ids. + This function is not ABI stable. Use getMultiLayerWallsEx() for ABI stable code. Examples: >>> wall_ids = mlc.get_multi_layer_walls() @@ -368,3 +370,241 @@ def get_cover_color(set_id: MultiLayerSetId) -> ColorId: Returns: The cover color. """ + +def get_multi_layer_framed_floors() -> List[MultiLayerSetId]: + """Gets all framed multi layer floor ids. + + Examples: + >>> floor_ids = mlc.get_multi_layer_framed_floors() + >>> print(f"Found {len(floor_ids)} multi-layer floor definitions") + >>> for floor_id in floor_ids: + ... name = mlc.get_multi_layer_set_name(floor_id) + ... print(f"Floor ID: {floor_id}, Name: {name}") + + Returns: + The multi layer floor ids. + """ + +def create_multi_layer_framed_floor(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer floor with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_framed_floor("Standard Floor") + >>> print(f"Created new multi-layer floor with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def get_multi_layer_framed_roofs() -> List[MultiLayerSetId]: + """Gets all multi layer roof ids. + + Examples: + >>> roof_ids = mlc.get_multi_layer_framed_roofs() + >>> print(f"Found {len(roof_ids)} multi-layer roof definitions") + >>> for roof_id in roof_ids: + ... name = mlc.get_multi_layer_set_name(roof_id) + ... print(f"Roof ID: {roof_id}, Name: {name}") + + Returns: + The multi layer roof ids. + """ + +def get_multi_layer_solid_floors() -> List[MultiLayerSetId]: + """Gets all solid multi layer floor ids. + + Examples: + >>> floor_ids = mlc.get_multi_layer_solid_floors() + >>> print(f"Found {len(floor_ids)} multi-layer floor definitions") + >>> for floor_id in floor_ids: + ... name = mlc.get_multi_layer_set_name(floor_id) + ... print(f"Floor ID: {floor_id}, Name: {name}") + + Returns: + The multi layer floor ids. + """ + +def create_multi_layer_solid_floor(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer solid floor with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_solid_floor("Standard Solid Floor") + >>> print(f"Created new multi-layer solid floor with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def create_multi_layer_framed_roof(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer roof with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_framed_roof("Pitched Roof") + >>> print(f"Created new multi-layer roof with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def create_multi_layer_framed_wall(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer wall with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_framed_wall("Standard Wall") + >>> print(f"Created new multi-layer wall with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def get_multi_layer_sets() -> List[MultiLayerSetId]: + """Gets all multi layer set ids of all types. + + Examples: + >>> all_ids = mlc.get_multi_layer_sets() + >>> print(f"Found {len(all_ids)} multi-layer definitions in total") + >>> for set_id in all_ids: + ... name = mlc.get_multi_layer_set_name(set_id) + ... print(f"Set ID: {set_id}, Name: {name}") + + Returns: + The multi layer set ids. + """ + +def create_multi_layer_by_cover_type(set_name: str, cover_type: multi_layer_cover_type) -> MultiLayerSetId: + """Creates a new multi layer set of specified type with given name and default values. + + Parameters: + set_name: The multi layer set name. + cover_type: The cover type. + + Examples: + >>> set_id = mlc.create_multi_layer_by_cover_type("Custom Solid Wall", cadwork.multi_layer_cover_type.solidWall) + >>> print(f"Created new multi-layer set with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def get_multi_layer_sets_for_cover_type(cover_type: multi_layer_cover_type) -> List[MultiLayerSetId]: + """Gets all multi layer set ids of specified cover type. + + Parameters: + cover_type: The cover type. + + Examples: + >>> set_ids = mlc.get_multi_layer_sets_for_cover_type(cadwork.multi_layer_cover_type.solidWall) + + Returns: + The multi layer set ids. + """ + +def get_multi_layer_walls_ex() -> List[MultiLayerSetId]: + """Gets all multi layer wall ids (ABI stable). + + Examples: + >>> wall_ids = mlc.get_multi_layer_walls_ex() + >>> print(f"Found {len(wall_ids)} multi-layer wall definitions") + >>> for wall_id in wall_ids: + ... name = mlc.get_multi_layer_set_name(wall_id) + ... print(f"Wall ID: {wall_id}, Name: {name}") + + Returns: + The multi layer wall ids. + """ + +def get_multi_layer_log_walls() -> List[MultiLayerSetId]: + """Gets all multi layer log wall ids. + + Examples: + >>> log_wall_ids = mlc.get_multi_layer_log_walls() + >>> print(f"Found {len(log_wall_ids)} multi-layer log wall definitions") + >>> for log_wall_id in log_wall_ids: + ... name = mlc.get_multi_layer_set_name(log_wall_id) + ... print(f"Log Wall ID: {log_wall_id}, Name: {name}") + + Returns: + The multi layer log wall ids. + """ + +def create_multi_layer_log_wall(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer log wall with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_log_wall("Standard Log Wall") + >>> print(f"Created new multi-layer log wall with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def get_multi_layer_solid_roofs() -> List[MultiLayerSetId]: + """Gets all multi layer solid roof ids. + + Examples: + >>> solid_roof_ids = mlc.get_multi_layer_solid_roofs() + >>> print(f"Found {len(solid_roof_ids)} multi-layer solid roof definitions") + >>> for solid_roof_id in solid_roof_ids: + ... name = mlc.get_multi_layer_set_name(solid_roof_id) + ... print(f"Solid Roof ID: {solid_roof_id}, Name: {name}") + + Returns: + The multi layer solid roof ids. + """ + +def create_multi_layer_solid_roof(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer solid roof with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_solid_roof("Standard Solid Roof") + >>> print(f"Created new multi-layer solid roof with ID: {set_id}") + + Returns: + The multi layer set id. + """ + +def get_multi_layer_solid_walls() -> List[MultiLayerSetId]: + """Gets all multi layer solid wall ids. + + Examples: + >>> solid_wall_ids = mlc.get_multi_layer_solid_walls() + >>> print(f"Found {len(solid_wall_ids)} multi-layer solid wall definitions") + >>> for solid_wall_id in solid_wall_ids: + ... name = mlc.get_multi_layer_set_name(solid_wall_id) + ... print(f"Solid Wall ID: {solid_wall_id}, Name: {name}") + + Returns: + The multi layer solid wall ids. + """ + +def create_multi_layer_solid_wall(set_name: str) -> MultiLayerSetId: + """Creates a new multi layer solid wall with given name and default values. + + Parameters: + set_name: The multi layer set name. + + Examples: + >>> set_id = mlc.create_multi_layer_solid_wall("Standard Solid Wall") + >>> print(f"Created new multi-layer solid wall with ID: {set_id}") + + Returns: + The multi layer set id. + """ \ No newline at end of file From a4c12289fc1b6659f30cb34ad5e97f5e9f95de5b Mon Sep 17 00:00:00 2001 From: Laura Bobillier Date: Thu, 18 Dec 2025 08:57:11 +0100 Subject: [PATCH 2/2] [API-482] [API-560] Updated api version and removed irrelevant C++ oriented method --- pyproject.toml | 2 +- src/multi_layer_cover_controller/__init__.pyi | 14 -------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 67a3ab8..d16d272 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cwapi3d" -version = "32.302.0" +version = "32.401.0" authors = [{ name = "Cadwork", email = "it@cadwork.ca" }] requires-python = ">= 3.12" description = 'Python bindings for CwAPI3D' diff --git a/src/multi_layer_cover_controller/__init__.pyi b/src/multi_layer_cover_controller/__init__.pyi index a0d0f6d..5f84e71 100644 --- a/src/multi_layer_cover_controller/__init__.pyi +++ b/src/multi_layer_cover_controller/__init__.pyi @@ -171,7 +171,6 @@ def set_cover_color(set_id: MultiLayerSetId, cover_color: ColorId) -> None: def get_multi_layer_walls() -> List[MultiLayerSetId]: """Gets all multi layer wall ids. - This function is not ABI stable. Use getMultiLayerWallsEx() for ABI stable code. Examples: >>> wall_ids = mlc.get_multi_layer_walls() @@ -511,19 +510,6 @@ def get_multi_layer_sets_for_cover_type(cover_type: multi_layer_cover_type) -> L The multi layer set ids. """ -def get_multi_layer_walls_ex() -> List[MultiLayerSetId]: - """Gets all multi layer wall ids (ABI stable). - - Examples: - >>> wall_ids = mlc.get_multi_layer_walls_ex() - >>> print(f"Found {len(wall_ids)} multi-layer wall definitions") - >>> for wall_id in wall_ids: - ... name = mlc.get_multi_layer_set_name(wall_id) - ... print(f"Wall ID: {wall_id}, Name: {name}") - - Returns: - The multi layer wall ids. - """ def get_multi_layer_log_walls() -> List[MultiLayerSetId]: """Gets all multi layer log wall ids.