Skip to content

Commit 665c96a

Browse files
[API-482] Updated version and documentation for multi layer cover controller
1 parent b9d12bb commit 665c96a

File tree

5 files changed

+318
-2
lines changed

5 files changed

+318
-2
lines changed

docs/documentation/enums.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,27 @@
6060
show_root_heading: false
6161
show_source: true
6262

63-
## Multi Layer Cover Type
63+
## Multi Layer Type
6464

6565
::: cadwork.multi_layer_type
6666
rendering:
6767
show_root_heading: false
6868
show_source: true
6969

70+
## Multi Layer Cover Subtype
71+
72+
::: cadwork.multi_layer_subtype
73+
rendering:
74+
show_root_heading: false
75+
show_source: true
76+
77+
## Multi Layer Cover Type
78+
79+
::: cadwork.multi_layer_cover_type
80+
rendering:
81+
show_root_heading: false
82+
show_source: true
83+
7084
## BIMteam upload
7185

7286
::: cadwork.bim_team_upload_result_code

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "cwapi3d"
3-
version = "32.301.0"
3+
version = "32.302.0"
44
authors = [{ name = "Cadwork", email = "it@cadwork.ca" }]
55
requires-python = ">= 3.12"
66
description = 'Python bindings for CwAPI3D'
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from enum import IntEnum, unique
2+
3+
4+
@unique
5+
class multi_layer_cover_type(IntEnum):
6+
"""multi layer cover type
7+
8+
Examples:
9+
>>> cadwork.multi_layer_cover_type.framedWall
10+
framedWall
11+
"""
12+
framedWall = 0
13+
""""""
14+
solidWall = 1
15+
""""""
16+
logWall = 2
17+
""""""
18+
framedRoof = 3
19+
""""""
20+
solidRoof = 4
21+
""""""
22+
framedFloor = 5
23+
""""""
24+
solidFloor = 6
25+
""""""
26+
27+
def __int__(self) -> int:
28+
return self.value
29+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from enum import IntEnum, unique
2+
3+
4+
@unique
5+
class multi_layer_subtype(IntEnum):
6+
"""multi layer subtype
7+
8+
Examples:
9+
>>> cadwork.multi_layer_subtype.undefined
10+
undefined
11+
"""
12+
undefined = 0
13+
""""""
14+
loadBearingFrameStructure = 1
15+
""""""
16+
solidStructure = 2
17+
""""""
18+
straightEdge = 3
19+
""""""
20+
biasEdge = 4
21+
""""""
22+
vertical = 5
23+
""""""
24+
horizontal = 6
25+
""""""
26+
air = 7
27+
""""""
28+
nonLoadBearingFrameStructure = 8
29+
""""""
30+
31+
def __int__(self) -> int:
32+
return self.value
33+

src/multi_layer_cover_controller/__init__.pyi

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from typing import List
2+
from cadwork import multi_layer_cover_type
23
from cadwork.api_types import *
34
from cadwork.multi_layer_type import multi_layer_type
45

@@ -170,6 +171,7 @@ def set_cover_color(set_id: MultiLayerSetId, cover_color: ColorId) -> None:
170171

171172
def get_multi_layer_walls() -> List[MultiLayerSetId]:
172173
"""Gets all multi layer wall ids.
174+
This function is not ABI stable. Use getMultiLayerWallsEx() for ABI stable code.
173175
174176
Examples:
175177
>>> wall_ids = mlc.get_multi_layer_walls()
@@ -368,3 +370,241 @@ def get_cover_color(set_id: MultiLayerSetId) -> ColorId:
368370
Returns:
369371
The cover color.
370372
"""
373+
374+
def get_multi_layer_framed_floors() -> List[MultiLayerSetId]:
375+
"""Gets all framed multi layer floor ids.
376+
377+
Examples:
378+
>>> floor_ids = mlc.get_multi_layer_framed_floors()
379+
>>> print(f"Found {len(floor_ids)} multi-layer floor definitions")
380+
>>> for floor_id in floor_ids:
381+
... name = mlc.get_multi_layer_set_name(floor_id)
382+
... print(f"Floor ID: {floor_id}, Name: {name}")
383+
384+
Returns:
385+
The multi layer floor ids.
386+
"""
387+
388+
def create_multi_layer_framed_floor(set_name: str) -> MultiLayerSetId:
389+
"""Creates a new multi layer floor with given name and default values.
390+
391+
Parameters:
392+
set_name: The multi layer set name.
393+
394+
Examples:
395+
>>> set_id = mlc.create_multi_layer_framed_floor("Standard Floor")
396+
>>> print(f"Created new multi-layer floor with ID: {set_id}")
397+
398+
Returns:
399+
The multi layer set id.
400+
"""
401+
402+
def get_multi_layer_framed_roofs() -> List[MultiLayerSetId]:
403+
"""Gets all multi layer roof ids.
404+
405+
Examples:
406+
>>> roof_ids = mlc.get_multi_layer_framed_roofs()
407+
>>> print(f"Found {len(roof_ids)} multi-layer roof definitions")
408+
>>> for roof_id in roof_ids:
409+
... name = mlc.get_multi_layer_set_name(roof_id)
410+
... print(f"Roof ID: {roof_id}, Name: {name}")
411+
412+
Returns:
413+
The multi layer roof ids.
414+
"""
415+
416+
def get_multi_layer_solid_floors() -> List[MultiLayerSetId]:
417+
"""Gets all solid multi layer floor ids.
418+
419+
Examples:
420+
>>> floor_ids = mlc.get_multi_layer_solid_floors()
421+
>>> print(f"Found {len(floor_ids)} multi-layer floor definitions")
422+
>>> for floor_id in floor_ids:
423+
... name = mlc.get_multi_layer_set_name(floor_id)
424+
... print(f"Floor ID: {floor_id}, Name: {name}")
425+
426+
Returns:
427+
The multi layer floor ids.
428+
"""
429+
430+
def create_multi_layer_solid_floor(set_name: str) -> MultiLayerSetId:
431+
"""Creates a new multi layer solid floor with given name and default values.
432+
433+
Parameters:
434+
set_name: The multi layer set name.
435+
436+
Examples:
437+
>>> set_id = mlc.create_multi_layer_solid_floor("Standard Solid Floor")
438+
>>> print(f"Created new multi-layer solid floor with ID: {set_id}")
439+
440+
Returns:
441+
The multi layer set id.
442+
"""
443+
444+
def create_multi_layer_framed_roof(set_name: str) -> MultiLayerSetId:
445+
"""Creates a new multi layer roof with given name and default values.
446+
447+
Parameters:
448+
set_name: The multi layer set name.
449+
450+
Examples:
451+
>>> set_id = mlc.create_multi_layer_framed_roof("Pitched Roof")
452+
>>> print(f"Created new multi-layer roof with ID: {set_id}")
453+
454+
Returns:
455+
The multi layer set id.
456+
"""
457+
458+
def create_multi_layer_framed_wall(set_name: str) -> MultiLayerSetId:
459+
"""Creates a new multi layer wall with given name and default values.
460+
461+
Parameters:
462+
set_name: The multi layer set name.
463+
464+
Examples:
465+
>>> set_id = mlc.create_multi_layer_framed_wall("Standard Wall")
466+
>>> print(f"Created new multi-layer wall with ID: {set_id}")
467+
468+
Returns:
469+
The multi layer set id.
470+
"""
471+
472+
def get_multi_layer_sets() -> List[MultiLayerSetId]:
473+
"""Gets all multi layer set ids of all types.
474+
475+
Examples:
476+
>>> all_ids = mlc.get_multi_layer_sets()
477+
>>> print(f"Found {len(all_ids)} multi-layer definitions in total")
478+
>>> for set_id in all_ids:
479+
... name = mlc.get_multi_layer_set_name(set_id)
480+
... print(f"Set ID: {set_id}, Name: {name}")
481+
482+
Returns:
483+
The multi layer set ids.
484+
"""
485+
486+
def create_multi_layer_by_cover_type(set_name: str, cover_type: multi_layer_cover_type) -> MultiLayerSetId:
487+
"""Creates a new multi layer set of specified type with given name and default values.
488+
489+
Parameters:
490+
set_name: The multi layer set name.
491+
cover_type: The cover type.
492+
493+
Examples:
494+
>>> set_id = mlc.create_multi_layer_by_cover_type("Custom Solid Wall", cadwork.multi_layer_cover_type.solidWall)
495+
>>> print(f"Created new multi-layer set with ID: {set_id}")
496+
497+
Returns:
498+
The multi layer set id.
499+
"""
500+
501+
def get_multi_layer_sets_for_cover_type(cover_type: multi_layer_cover_type) -> List[MultiLayerSetId]:
502+
"""Gets all multi layer set ids of specified cover type.
503+
504+
Parameters:
505+
cover_type: The cover type.
506+
507+
Examples:
508+
>>> set_ids = mlc.get_multi_layer_sets_for_cover_type(cadwork.multi_layer_cover_type.solidWall)
509+
510+
Returns:
511+
The multi layer set ids.
512+
"""
513+
514+
def get_multi_layer_walls_ex() -> List[MultiLayerSetId]:
515+
"""Gets all multi layer wall ids (ABI stable).
516+
517+
Examples:
518+
>>> wall_ids = mlc.get_multi_layer_walls_ex()
519+
>>> print(f"Found {len(wall_ids)} multi-layer wall definitions")
520+
>>> for wall_id in wall_ids:
521+
... name = mlc.get_multi_layer_set_name(wall_id)
522+
... print(f"Wall ID: {wall_id}, Name: {name}")
523+
524+
Returns:
525+
The multi layer wall ids.
526+
"""
527+
528+
def get_multi_layer_log_walls() -> List[MultiLayerSetId]:
529+
"""Gets all multi layer log wall ids.
530+
531+
Examples:
532+
>>> log_wall_ids = mlc.get_multi_layer_log_walls()
533+
>>> print(f"Found {len(log_wall_ids)} multi-layer log wall definitions")
534+
>>> for log_wall_id in log_wall_ids:
535+
... name = mlc.get_multi_layer_set_name(log_wall_id)
536+
... print(f"Log Wall ID: {log_wall_id}, Name: {name}")
537+
538+
Returns:
539+
The multi layer log wall ids.
540+
"""
541+
542+
def create_multi_layer_log_wall(set_name: str) -> MultiLayerSetId:
543+
"""Creates a new multi layer log wall with given name and default values.
544+
545+
Parameters:
546+
set_name: The multi layer set name.
547+
548+
Examples:
549+
>>> set_id = mlc.create_multi_layer_log_wall("Standard Log Wall")
550+
>>> print(f"Created new multi-layer log wall with ID: {set_id}")
551+
552+
Returns:
553+
The multi layer set id.
554+
"""
555+
556+
def get_multi_layer_solid_roofs() -> List[MultiLayerSetId]:
557+
"""Gets all multi layer solid roof ids.
558+
559+
Examples:
560+
>>> solid_roof_ids = mlc.get_multi_layer_solid_roofs()
561+
>>> print(f"Found {len(solid_roof_ids)} multi-layer solid roof definitions")
562+
>>> for solid_roof_id in solid_roof_ids:
563+
... name = mlc.get_multi_layer_set_name(solid_roof_id)
564+
... print(f"Solid Roof ID: {solid_roof_id}, Name: {name}")
565+
566+
Returns:
567+
The multi layer solid roof ids.
568+
"""
569+
570+
def create_multi_layer_solid_roof(set_name: str) -> MultiLayerSetId:
571+
"""Creates a new multi layer solid roof with given name and default values.
572+
573+
Parameters:
574+
set_name: The multi layer set name.
575+
576+
Examples:
577+
>>> set_id = mlc.create_multi_layer_solid_roof("Standard Solid Roof")
578+
>>> print(f"Created new multi-layer solid roof with ID: {set_id}")
579+
580+
Returns:
581+
The multi layer set id.
582+
"""
583+
584+
def get_multi_layer_solid_walls() -> List[MultiLayerSetId]:
585+
"""Gets all multi layer solid wall ids.
586+
587+
Examples:
588+
>>> solid_wall_ids = mlc.get_multi_layer_solid_walls()
589+
>>> print(f"Found {len(solid_wall_ids)} multi-layer solid wall definitions")
590+
>>> for solid_wall_id in solid_wall_ids:
591+
... name = mlc.get_multi_layer_set_name(solid_wall_id)
592+
... print(f"Solid Wall ID: {solid_wall_id}, Name: {name}")
593+
594+
Returns:
595+
The multi layer solid wall ids.
596+
"""
597+
598+
def create_multi_layer_solid_wall(set_name: str) -> MultiLayerSetId:
599+
"""Creates a new multi layer solid wall with given name and default values.
600+
601+
Parameters:
602+
set_name: The multi layer set name.
603+
604+
Examples:
605+
>>> set_id = mlc.create_multi_layer_solid_wall("Standard Solid Wall")
606+
>>> print(f"Created new multi-layer solid wall with ID: {set_id}")
607+
608+
Returns:
609+
The multi layer set id.
610+
"""

0 commit comments

Comments
 (0)