stbkit 0.1.0a9.dev1__tar.gz → 0.1.0b2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/PKG-INFO +8 -9
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/README.md +5 -6
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/pyproject.toml +6 -7
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/__init__.py +3 -3
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/stb_latest.py +1 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/stb_v2_0_2.py +3 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/stb_v2_1_1.py +1 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/cli_main.py +2 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/common.py +2 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/converter.py +44 -36
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/entry_points.py +2 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/global_parent.py +2 -1
- stbkit-0.1.0b2/src/stbkit/cli/_internal/summary.py +73 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/validate.py +2 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/commands/convert.py +2 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/commands/diff.py +2 -2
- stbkit-0.1.0b2/src/stbkit/cli/commands/summary.py +16 -0
- stbkit-0.1.0b2/src/stbkit/cli/commands/upgrade.py +16 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/commands/validate.py +2 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/building_geometry.py +7 -4
- stbkit-0.1.0b2/src/stbkit/tools/_internal/data_model/summary.py +213 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/diff/diff_xml.py +7 -8
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/ifc_exporter/ifc_entity_exporter.py +5 -3
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/ifc_exporter/ifc_representation_exporter.py +6 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/stb_io.py +2 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/stb_repair/_stb_repair.py +2 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/mesh_utils.py +3 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/node_utils.py +8 -7
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/building_geometry_to_ply_text.py +2 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/element_data_to_building_geometry.py +4 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/_stb_latest_to_element_data.py +11 -27
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_line.py +2 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec.py +5 -6
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_src.py +3 -3
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_to_building_geometry.py +3 -3
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/upgrade.py +45 -25
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_pile_rc.py +4 -4
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_pile_s.py +1 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_girder.py +1 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_sec_beam_rc.py +6 -2
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_sec_beam_s.py +33 -28
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit.egg-info/PKG-INFO +8 -9
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit.egg-info/SOURCES.txt +4 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit.egg-info/requires.txt +1 -1
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/LICENSE +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/setup.cfg +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/__main__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/experimental/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/experimental/repository/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/api/py.typed +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/constants_exit_code.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/diff.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/_internal/show_versions.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/cli/py.typed +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/constants.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/building_geometry_web.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/element_data.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/ifc_data/entity_data.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/ifc_data/entity_names.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/shape_data.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/diff/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/diff/common.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/matrix.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/ifc_common.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/ifc_exporter/ifc_profile_exporter.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/ifc_pipeline.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/optional_dependencies/ifc_to_building_geometry.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/stb_repair/_common.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/stb_repair/_stb_v2_0_2_repair.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/stb_repair/_stb_v2_1_0_repair.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/stb_repair/_stb_v2_1_1_repair.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/studio_report.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/atomic_writer.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/float_rounding.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/girder_utils.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/guid_utils.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/utils/unit_utils.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/vectors.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/coord_converter.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/ifc_to_ply_text.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/name_converter.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/data.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/execution.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/ply_pipeline.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/stb_pipeline.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/stb_pipeline_latest.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/pipeline/step.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_footing.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_pile.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_plane.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/open.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_beam_rc.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_beam_s.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_beam_src.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_brace_s.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_cft.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_rc.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_s.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_foundation.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_parapet_rc.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_pile_rc.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_pile_s.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_steel.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_to_ifc_data/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_to_ifc_data/_stb_to_ifc_data.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_to_ifc_data/convert_option.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/converters/_internal/stb_to_ply_text.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/py.typed +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/common.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_common.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_joint_beam_shape_h.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_slab_deck.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_slab_rc.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_open.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hooks.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/post.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/tables.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_1_0_to_v2_1_1/__init__.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_1_0_to_v2_1_1/hooks.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/upgrade/_internal/v2_1_0_to_v2_1_1/tables.py +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit.egg-info/dependency_links.txt +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit.egg-info/entry_points.txt +0 -0
- {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stbkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0b2
|
|
4
4
|
Summary: ST-Bridgeを扱うライブラリSTB-KIT
|
|
5
5
|
Author-email: "STB-KIT Development Team (TAISEI CORPORATION)" <oss-dev@pub.taisei.co.jp>
|
|
6
6
|
License-Expression: MPL-2.0
|
|
@@ -9,7 +9,7 @@ Project-URL: Repository, https://github.com/taisei-oss/stb-kit
|
|
|
9
9
|
Project-URL: Issues, https://github.com/taisei-oss/stb-kit/issues
|
|
10
10
|
Project-URL: Changelog, https://github.com/taisei-oss/stb-kit/blob/main/CHANGELOG.md
|
|
11
11
|
Keywords: ST-Bridge,BIM,IFC,structural-engineering,stbridge
|
|
12
|
-
Classifier: Development Status ::
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
13
|
Classifier: Environment :: Console
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -27,7 +27,7 @@ Classifier: Typing :: Typed
|
|
|
27
27
|
Requires-Python: >=3.12
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
29
29
|
License-File: LICENSE
|
|
30
|
-
Requires-Dist: stbkit-core==0.1.
|
|
30
|
+
Requires-Dist: stbkit-core==0.1.0b2
|
|
31
31
|
Provides-Extra: xsd
|
|
32
32
|
Requires-Dist: xmlschema>=4.3.2; extra == "xsd"
|
|
33
33
|
Provides-Extra: ifc
|
|
@@ -51,6 +51,8 @@ _ST-Bridge is a structural data exchange format widely used in Japan._
|
|
|
51
51
|
|
|
52
52
|
詳細はリポジトリの[README](https://github.com/taisei-oss/stb-kit)および[DISCLAIMER](https://github.com/taisei-oss/stb-kit/blob/main/DISCLAIMER.md)をご確認ください。
|
|
53
53
|
|
|
54
|
+

|
|
55
|
+
|
|
54
56
|
## 概要
|
|
55
57
|
|
|
56
58
|
stbkitはST-Bridgeを扱うためのツールキットSTB-KITの統合パッケージです。
|
|
@@ -66,7 +68,7 @@ stbkit-core(データモデル・バリデーション)をコアの依存と
|
|
|
66
68
|
|
|
67
69
|
## インストール(最小構成)
|
|
68
70
|
|
|
69
|
-
STB-KIT
|
|
71
|
+
STB-KITは現在ベータ版です。通常のインストールではベータ版が選ばれない場合があるため、次の例では`--pre`を指定します。利用するベータ版の番号が分かっている場合は、`stbkit==バージョン番号`のようにバージョンを直接指定することもできます。
|
|
70
72
|
|
|
71
73
|
```bash
|
|
72
74
|
python -m pip install --pre stbkit
|
|
@@ -101,7 +103,7 @@ python -m pip install --pre stbkit
|
|
|
101
103
|
stbkit -h
|
|
102
104
|
```
|
|
103
105
|
|
|
104
|
-
- ST-Bridge
|
|
106
|
+
- ST-Bridgeのバリデーションを行う
|
|
105
107
|
|
|
106
108
|
```bash
|
|
107
109
|
stbkit validate model.stb
|
|
@@ -160,10 +162,7 @@ diffは入力が2つあるため対応していません。
|
|
|
160
162
|
|
|
161
163
|
## ドキュメント
|
|
162
164
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- ユーザーガイド(準備中)
|
|
166
|
-
- バージョンアップ、IFC変換の仕様(準備中)
|
|
165
|
+
- [STB-KITドキュメント](https://taisei-oss.github.io/stb-kit/)
|
|
167
166
|
|
|
168
167
|
## 依存ライブラリ・再配布に関する注意
|
|
169
168
|
|
|
@@ -10,6 +10,8 @@ _ST-Bridge is a structural data exchange format widely used in Japan._
|
|
|
10
10
|
|
|
11
11
|
詳細はリポジトリの[README](https://github.com/taisei-oss/stb-kit)および[DISCLAIMER](https://github.com/taisei-oss/stb-kit/blob/main/DISCLAIMER.md)をご確認ください。
|
|
12
12
|
|
|
13
|
+

|
|
14
|
+
|
|
13
15
|
## 概要
|
|
14
16
|
|
|
15
17
|
stbkitはST-Bridgeを扱うためのツールキットSTB-KITの統合パッケージです。
|
|
@@ -25,7 +27,7 @@ stbkit-core(データモデル・バリデーション)をコアの依存と
|
|
|
25
27
|
|
|
26
28
|
## インストール(最小構成)
|
|
27
29
|
|
|
28
|
-
STB-KIT
|
|
30
|
+
STB-KITは現在ベータ版です。通常のインストールではベータ版が選ばれない場合があるため、次の例では`--pre`を指定します。利用するベータ版の番号が分かっている場合は、`stbkit==バージョン番号`のようにバージョンを直接指定することもできます。
|
|
29
31
|
|
|
30
32
|
```bash
|
|
31
33
|
python -m pip install --pre stbkit
|
|
@@ -60,7 +62,7 @@ python -m pip install --pre stbkit
|
|
|
60
62
|
stbkit -h
|
|
61
63
|
```
|
|
62
64
|
|
|
63
|
-
- ST-Bridge
|
|
65
|
+
- ST-Bridgeのバリデーションを行う
|
|
64
66
|
|
|
65
67
|
```bash
|
|
66
68
|
stbkit validate model.stb
|
|
@@ -119,10 +121,7 @@ diffは入力が2つあるため対応していません。
|
|
|
119
121
|
|
|
120
122
|
## ドキュメント
|
|
121
123
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
- ユーザーガイド(準備中)
|
|
125
|
-
- バージョンアップ、IFC変換の仕様(準備中)
|
|
124
|
+
- [STB-KITドキュメント](https://taisei-oss.github.io/stb-kit/)
|
|
126
125
|
|
|
127
126
|
## 依存ライブラリ・再配布に関する注意
|
|
128
127
|
|
|
@@ -10,19 +10,19 @@ build-backend = "setuptools.build_meta"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "stbkit"
|
|
13
|
-
version = "0.1.
|
|
13
|
+
version = "0.1.0b2"
|
|
14
14
|
description = "ST-Bridgeを扱うライブラリSTB-KIT"
|
|
15
15
|
authors = [
|
|
16
16
|
{ name = "STB-KIT Development Team (TAISEI CORPORATION)", email = "oss-dev@pub.taisei.co.jp" },
|
|
17
17
|
]
|
|
18
|
-
dependencies = ["stbkit-core==0.1.
|
|
18
|
+
dependencies = ["stbkit-core==0.1.0b2"]
|
|
19
19
|
readme = "README.md"
|
|
20
20
|
requires-python = ">=3.12"
|
|
21
21
|
license = "MPL-2.0"
|
|
22
22
|
license-files = ["LICENSE"]
|
|
23
23
|
keywords = ["ST-Bridge", "BIM", "IFC", "structural-engineering", "stbridge"]
|
|
24
24
|
classifiers = [
|
|
25
|
-
"Development Status ::
|
|
25
|
+
"Development Status :: 4 - Beta",
|
|
26
26
|
"Environment :: Console",
|
|
27
27
|
"Intended Audience :: Developers",
|
|
28
28
|
"Intended Audience :: Science/Research",
|
|
@@ -67,11 +67,10 @@ full = [
|
|
|
67
67
|
"xmlschema>=4.3.2",
|
|
68
68
|
]
|
|
69
69
|
|
|
70
|
+
[tool.ruff]
|
|
71
|
+
extend = "../../pyproject.toml"
|
|
72
|
+
|
|
70
73
|
[tool.ruff.lint.per-file-ignores]
|
|
71
|
-
# 辞書形式の要素名が長いため1行になるのを許容
|
|
72
|
-
"src/stbkit/tools/transform/versioning/_internal/upgrade_v202_to_v210/tables.py" = [
|
|
73
|
-
"E501",
|
|
74
|
-
]
|
|
75
74
|
# 社内用コードから公開用コードへ切り出す際に生じてしまうエラーの除外
|
|
76
75
|
"src/stbkit/cli/_internal/diff.py" = ["F401", "I001"]
|
|
77
76
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"""stbkitの基本機能をまとめたAPI
|
|
8
8
|
|
|
9
9
|
ST-Bridgeファイルの読み書き、バージョンアップ、他形式への変換を提供します。
|
|
10
|
-
バージョンごとのデータモデルはstb_latest、
|
|
10
|
+
バージョンごとのデータモデルはstb_latest、stb_v2_0_2、stb_v2_1_1から利用してください。
|
|
11
11
|
|
|
12
12
|
読み込みは、ファイルのバージョンをそのまま扱うload・loadsと、
|
|
13
13
|
読み込んでから最新版へ変換するload_latest・loads_latestがあります。
|
|
@@ -40,8 +40,8 @@ __all__ = [
|
|
|
40
40
|
"loads",
|
|
41
41
|
"loads_latest",
|
|
42
42
|
"stb_latest",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
43
|
+
"stb_v2_0_2",
|
|
44
|
+
"stb_v2_1_1",
|
|
45
45
|
"to_ifc",
|
|
46
46
|
"upgrade_to_latest",
|
|
47
47
|
"validate_schema",
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
"""ST-Bridge v2.0.2のデータモデル
|
|
8
8
|
|
|
9
|
-
WARNING: ST-Bridge 2.0.xは、2027年末でサポート終了となります。
|
|
9
|
+
WARNING: ST-Bridge 2.0.xは、2027年末でサポート終了となります。
|
|
10
|
+
v2.1.xへの移行を推奨します。"""
|
|
10
11
|
|
|
11
|
-
from stbkit.core.data_model.stb_v2_0_2 import *
|
|
12
|
+
from stbkit.core.data_model.stb_v2_0_2 import * # noqa: F403
|
|
@@ -27,7 +27,8 @@ def use_input(parser: ArgumentParser) -> None:
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def read_stdin_xml(*, max_size: int, encoding: str | None = None) -> str:
|
|
30
|
-
# 端末のエンコーディング設定だとST-Bridgeに記載のencodingを読めないため、
|
|
30
|
+
# 端末のエンコーディング設定だとST-Bridgeに記載のencodingを読めないため、
|
|
31
|
+
# bytesとして受け取り、XML宣言から判定する。
|
|
31
32
|
# encodingを明示した場合は判定より優先する。
|
|
32
33
|
buffer: IO[bytes] | None = getattr(sys.stdin, "buffer", None)
|
|
33
34
|
if buffer is None:
|
|
@@ -10,7 +10,7 @@ import os
|
|
|
10
10
|
import sys
|
|
11
11
|
from argparse import Namespace, _SubParsersAction
|
|
12
12
|
from dataclasses import dataclass
|
|
13
|
-
from logging import Logger
|
|
13
|
+
from logging import INFO, Logger
|
|
14
14
|
from pathlib import Path
|
|
15
15
|
from typing import Any
|
|
16
16
|
from xml.etree.ElementTree import ParseError
|
|
@@ -24,6 +24,7 @@ from stbkit.core.stb_reporting import (
|
|
|
24
24
|
get_reporter,
|
|
25
25
|
)
|
|
26
26
|
|
|
27
|
+
from stbkit.tools._internal.data_model.summary import StbSummary, get_summary
|
|
27
28
|
from stbkit.tools.converters._internal.pipeline.data import (
|
|
28
29
|
_Data,
|
|
29
30
|
_DataFormat,
|
|
@@ -77,40 +78,11 @@ class ConverterArgs:
|
|
|
77
78
|
reporter: Reporter
|
|
78
79
|
|
|
79
80
|
def print_stb_info(self, stb: StBridgeRoot) -> None:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if model.stb_nodes_or_none:
|
|
86
|
-
logger.info(f" node数:{len(model.stb_nodes.stb_node)}")
|
|
87
|
-
members = model.stb_members_or_none
|
|
88
|
-
if members is None:
|
|
89
|
-
return
|
|
90
|
-
member_types = [
|
|
91
|
-
"column",
|
|
92
|
-
"girder",
|
|
93
|
-
"post",
|
|
94
|
-
"beam",
|
|
95
|
-
"brace",
|
|
96
|
-
"wall",
|
|
97
|
-
"slab",
|
|
98
|
-
]
|
|
99
|
-
for member_type in member_types:
|
|
100
|
-
member_group = getattr(
|
|
101
|
-
members,
|
|
102
|
-
f"stb_{member_type}s_or_none",
|
|
103
|
-
None,
|
|
104
|
-
)
|
|
105
|
-
if member_group is None:
|
|
106
|
-
continue
|
|
107
|
-
member_list = getattr(
|
|
108
|
-
member_group,
|
|
109
|
-
f"stb_{member_type}",
|
|
110
|
-
None,
|
|
111
|
-
)
|
|
112
|
-
if member_list:
|
|
113
|
-
logger.info(f" {member_type}数:{len(member_list)}")
|
|
81
|
+
summary: StbSummary = get_summary(
|
|
82
|
+
stb, reporter=CollectingReporter(), validate=False
|
|
83
|
+
)
|
|
84
|
+
for line in summary.to_text().splitlines():
|
|
85
|
+
self.logger.info(line)
|
|
114
86
|
|
|
115
87
|
|
|
116
88
|
@dataclass(frozen=True)
|
|
@@ -473,7 +445,7 @@ def _pipeline_convert(args: ConverterArgs) -> None:
|
|
|
473
445
|
max_size=args.max_size,
|
|
474
446
|
)
|
|
475
447
|
|
|
476
|
-
if isinstance(input_data, StbData):
|
|
448
|
+
if isinstance(input_data, StbData) and args.logger.isEnabledFor(INFO):
|
|
477
449
|
args.print_stb_info(input_data.value)
|
|
478
450
|
|
|
479
451
|
observed_data: dict[_DataFormat, _Data] = {
|
|
@@ -571,6 +543,42 @@ def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
|
571
543
|
parser.set_defaults(func=_run, _parser=parser)
|
|
572
544
|
|
|
573
545
|
|
|
546
|
+
def register_upgrade(subparsers: _SubParsersAction[Any]) -> None:
|
|
547
|
+
parser = subparsers.add_parser(
|
|
548
|
+
"upgrade",
|
|
549
|
+
parents=[make_global_parent()],
|
|
550
|
+
help=("ST-Bridgeを最新版へ更新します。"),
|
|
551
|
+
)
|
|
552
|
+
parser.add_argument(
|
|
553
|
+
"input",
|
|
554
|
+
nargs="?",
|
|
555
|
+
help="入力ファイルのパス。-で標準入力を使用します。",
|
|
556
|
+
)
|
|
557
|
+
parser.add_argument(
|
|
558
|
+
"-o",
|
|
559
|
+
"--output",
|
|
560
|
+
default="-",
|
|
561
|
+
help="出力ファイルのパス。-で標準出力を使用します。",
|
|
562
|
+
)
|
|
563
|
+
parser.add_argument(
|
|
564
|
+
"-y", "--yes", action="store_true", help="確認なしで上書きします。"
|
|
565
|
+
)
|
|
566
|
+
parser.add_argument(
|
|
567
|
+
"--input-encoding",
|
|
568
|
+
help="入力ファイルのエンコーディングを指定します。"
|
|
569
|
+
"省略時は自動検出またはutf-8を使用します。",
|
|
570
|
+
)
|
|
571
|
+
parser.set_defaults(
|
|
572
|
+
func=_run,
|
|
573
|
+
_parser=parser,
|
|
574
|
+
from_format="stb",
|
|
575
|
+
to_format="stb",
|
|
576
|
+
list_formats=False,
|
|
577
|
+
via=None,
|
|
578
|
+
save_intermediate=None,
|
|
579
|
+
)
|
|
580
|
+
|
|
581
|
+
|
|
574
582
|
def _print_list_formats() -> None:
|
|
575
583
|
print("対応しているファイル形式")
|
|
576
584
|
for spec in _CLI_FORMAT_SPECS:
|
|
@@ -14,6 +14,8 @@ COMMAND_GROUP: Final = "stbkit.commands"
|
|
|
14
14
|
BUILTIN_COMMANDS: Final[dict[str, str]] = {
|
|
15
15
|
"convert": "stbkit.cli.commands.convert:register",
|
|
16
16
|
"diff": "stbkit.cli.commands.diff:register",
|
|
17
|
+
"summary": "stbkit.cli.commands.summary:register",
|
|
18
|
+
"upgrade": "stbkit.cli.commands.upgrade:register",
|
|
17
19
|
"validate": "stbkit.cli.commands.validate:register",
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -16,7 +16,8 @@ DEFAULT_MAX_SIZE_MB: int = DEFAULT_MAX_XML_SIZE // BYTES_PER_MB
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def make_global_parent() -> argparse.ArgumentParser:
|
|
19
|
-
#
|
|
19
|
+
# 共通引数に既定値を持たせるとサブコマンドより前で指定した値が
|
|
20
|
+
# サブコマンドで上書きされてしまうため、
|
|
20
21
|
# 共通引数は既定値を持たせず、下のget_xxxを用いる。
|
|
21
22
|
parent = argparse.ArgumentParser(add_help=False)
|
|
22
23
|
parent.add_argument(
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Copyright 2026 TAISEI CORPORATION
|
|
2
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
3
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import sys
|
|
10
|
+
from argparse import Namespace, _SubParsersAction
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
from stbkit.core.data_model.common import StBridgeRoot
|
|
15
|
+
from stbkit.core.stb_io import load, loads
|
|
16
|
+
from stbkit.core.stb_reporting import CollectingReporter
|
|
17
|
+
|
|
18
|
+
from stbkit.tools._internal.data_model.summary import StbSummary, get_summary
|
|
19
|
+
|
|
20
|
+
from . import common
|
|
21
|
+
from .constants_exit_code import EXIT_EXECUTION_ERROR, EXIT_INVALID_ARGUMENT, EXIT_OK
|
|
22
|
+
from .global_parent import get_max_size, make_global_parent
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
26
|
+
parser = subparsers.add_parser(
|
|
27
|
+
"summary",
|
|
28
|
+
parents=[make_global_parent()],
|
|
29
|
+
help="ST-Bridgeの概要を出力します。",
|
|
30
|
+
)
|
|
31
|
+
common.use_input(parser)
|
|
32
|
+
parser.add_argument(
|
|
33
|
+
"--output-format",
|
|
34
|
+
choices=("text", "json"),
|
|
35
|
+
default="text",
|
|
36
|
+
help="出力フォーマット。textまたはjsonを指定します。",
|
|
37
|
+
)
|
|
38
|
+
parser.set_defaults(func=_run)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _run(args: Namespace) -> None:
|
|
42
|
+
input_path: str = common.get_input(args)
|
|
43
|
+
max_size: int = get_max_size(args)
|
|
44
|
+
output_format: str = str(args.output_format)
|
|
45
|
+
verbose: int = int(args.verbose) if hasattr(args, "verbose") else 0
|
|
46
|
+
|
|
47
|
+
try:
|
|
48
|
+
reporter: CollectingReporter = CollectingReporter()
|
|
49
|
+
if input_path == "-":
|
|
50
|
+
stb: StBridgeRoot = loads(
|
|
51
|
+
common.read_stdin_xml(max_size=max_size),
|
|
52
|
+
max_size=max_size,
|
|
53
|
+
reporter=reporter,
|
|
54
|
+
)
|
|
55
|
+
else:
|
|
56
|
+
path: Path = Path(input_path)
|
|
57
|
+
if not path.is_file():
|
|
58
|
+
raise FileNotFoundError(f"入力ファイルが見つかりません: {path}")
|
|
59
|
+
stb = load(path, max_size=max_size, reporter=reporter)
|
|
60
|
+
summary: StbSummary = get_summary(stb, reporter=reporter)
|
|
61
|
+
if output_format == "json":
|
|
62
|
+
output_str: str = summary.to_json(indent=2)
|
|
63
|
+
else:
|
|
64
|
+
output_str = summary.to_text(verbose=verbose)
|
|
65
|
+
sys.stdout.write(output_str)
|
|
66
|
+
except FileNotFoundError as error:
|
|
67
|
+
print(str(error), file=sys.stderr)
|
|
68
|
+
raise SystemExit(EXIT_INVALID_ARGUMENT) from None
|
|
69
|
+
except Exception as error: # noqa: BLE001
|
|
70
|
+
print(f"summaryの作成に失敗しました: {error}", file=sys.stderr)
|
|
71
|
+
raise SystemExit(EXIT_EXECUTION_ERROR) from None
|
|
72
|
+
|
|
73
|
+
raise SystemExit(EXIT_OK)
|
|
@@ -48,7 +48,8 @@ def _try_validate_report(
|
|
|
48
48
|
require_xsd: bool,
|
|
49
49
|
exclude_legal_extensions: bool,
|
|
50
50
|
) -> tuple[CollectingReporter | None, str]:
|
|
51
|
-
# XMLとして読み込めなかった場合は、チェック結果ではなく実行の失敗なので
|
|
51
|
+
# XMLとして読み込めなかった場合は、チェック結果ではなく実行の失敗なので
|
|
52
|
+
# (None, エラーメッセージ)を返す。
|
|
52
53
|
# ST-Bridgeとしての不正はチェック結果であるため、エラーとしない。
|
|
53
54
|
try:
|
|
54
55
|
reporter: CollectingReporter = _validate_report(
|
|
@@ -9,8 +9,8 @@ from __future__ import annotations
|
|
|
9
9
|
from argparse import _SubParsersAction
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
|
-
from .._internal import converter
|
|
13
|
-
|
|
14
12
|
|
|
15
13
|
def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
14
|
+
from .._internal import converter
|
|
15
|
+
|
|
16
16
|
converter.register(subparsers)
|
|
@@ -9,8 +9,8 @@ from __future__ import annotations
|
|
|
9
9
|
from argparse import _SubParsersAction
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
|
-
from .._internal import diff
|
|
13
|
-
|
|
14
12
|
|
|
15
13
|
def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
14
|
+
from .._internal import diff
|
|
15
|
+
|
|
16
16
|
diff.register(subparsers)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright 2026 TAISEI CORPORATION
|
|
2
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
3
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from argparse import _SubParsersAction
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
from .._internal import summary
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
16
|
+
summary.register(subparsers)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright 2026 TAISEI CORPORATION
|
|
2
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
3
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from argparse import _SubParsersAction
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
14
|
+
from .._internal import converter
|
|
15
|
+
|
|
16
|
+
converter.register_upgrade(subparsers)
|
|
@@ -9,8 +9,8 @@ from __future__ import annotations
|
|
|
9
9
|
from argparse import _SubParsersAction
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
|
-
from .._internal import validate
|
|
13
|
-
|
|
14
12
|
|
|
15
13
|
def register(subparsers: _SubParsersAction[Any]) -> None:
|
|
14
|
+
from .._internal import validate
|
|
15
|
+
|
|
16
16
|
validate.register(subparsers)
|
{stbkit-0.1.0a9.dev1 → stbkit-0.1.0b2}/src/stbkit/tools/_internal/data_model/building_geometry.py
RENAMED
|
@@ -42,7 +42,8 @@ def _new_u32_array() -> array[int]:
|
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def _new_offsets_array() -> array[int]:
|
|
45
|
-
# データの範囲をoffsets[i]:offsets[i + 1]
|
|
45
|
+
# データの範囲をoffsets[i]:offsets[i + 1] で求めるため、
|
|
46
|
+
# 要素が0個でも先頭の0を作っておく。
|
|
46
47
|
return array("I", [0])
|
|
47
48
|
|
|
48
49
|
|
|
@@ -169,7 +170,7 @@ class PolygonMesh:
|
|
|
169
170
|
repr=False,
|
|
170
171
|
)
|
|
171
172
|
"""面の頂点。
|
|
172
|
-
|
|
173
|
+
|
|
173
174
|
例えば面が(0, 1, 2, 3),(4, 5, 6)なら、 [0, 1, 2, 3, 4, 5, 6]のように格納する"""
|
|
174
175
|
|
|
175
176
|
face_offsets: array[int] = field(
|
|
@@ -325,7 +326,8 @@ class PlaneShape:
|
|
|
325
326
|
@dataclass(slots=True)
|
|
326
327
|
class PlaneShapeTable:
|
|
327
328
|
points_xyz: array[float] = field(default_factory=_new_f64_array, repr=False)
|
|
328
|
-
"""全ループの頂点。x, y, z の順で1点につき3
|
|
329
|
+
"""全ループの頂点。x, y, z の順で1点につき3値。
|
|
330
|
+
ループの順序はplane_loop_offsetsで表す。"""
|
|
329
331
|
loop_point_offsets: array[int] = field(
|
|
330
332
|
default_factory=_new_offsets_array,
|
|
331
333
|
repr=False,
|
|
@@ -1135,7 +1137,8 @@ class BuildingGeometry:
|
|
|
1135
1137
|
else:
|
|
1136
1138
|
if not flags & ElementFlags.HAS_MESH:
|
|
1137
1139
|
raise ValueError(
|
|
1138
|
-
f"element {element_index} はmesh spanがありますが
|
|
1140
|
+
f"element {element_index} はmesh spanがありますが"
|
|
1141
|
+
"HAS_MESHではありません"
|
|
1139
1142
|
)
|
|
1140
1143
|
if span.vertex_start + span.vertex_count > vertex_count:
|
|
1141
1144
|
raise ValueError(
|