mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-19 03:33:48 +00:00
fb70c64138
Establish a single source of truth for parametric element types (door, window, stair, railing, roof). tool.Parametric.EDIT_TYPES drives: - BIM<Name>Properties PointerProperty attachment via the registry - GizmoPreferences<Name> class registration in bim/__init__.py - save-time auto-commit of pending draft edits - the refresh_post_commit epilogue called from IfcStore after every IFC mutation, which fixes the stale-header bug where in-place hotkey mutations (S_E / C_E) left BIMModelProperties and the gizmo cache pointing at obsolete values. Refactors door/window/railing/roof onto shared mixins from bim/parametric_lifecycle.py (FeatureModifierEditMixin and PathPreservingEditMixin); stair gets the lock-gizmo refactor and frame-cache integration. Behavior preserved. Adds BaseParametricGizmoGroup._prime_frame_caches so the parametric gizmos stop re-deriving preferences, view direction, and billboard rotation per frame; reorders poll() to short-circuit on the cheapest predicate first. Adds the icon library + BillboardingGizmoGroupMixin that the wall feature in the next commit will consume. Generated with the assistance of an AI coding tool.
77 lines
2.9 KiB
Python
77 lines
2.9 KiB
Python
# Bonsai - OpenBIM Blender Add-on
|
|
# Copyright (C) 2021 Dion Moult <dion@thinkmoult.com>
|
|
#
|
|
# This file is part of Bonsai.
|
|
#
|
|
# Bonsai is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Bonsai is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Bonsai. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# Ignore unused imports.
|
|
# ruff: noqa: F401
|
|
|
|
from bonsai.tool.aggregate import Aggregate
|
|
from bonsai.tool.attribute import Attribute
|
|
from bonsai.tool.bcf import Bcf
|
|
from bonsai.tool.blender import Blender
|
|
from bonsai.tool.boundary import Boundary
|
|
from bonsai.tool.brick import Brick
|
|
from bonsai.tool.bsdd import Bsdd
|
|
from bonsai.tool.cad import Cad
|
|
from bonsai.tool.clash import Clash
|
|
from bonsai.tool.classification import Classification
|
|
from bonsai.tool.collector import Collector
|
|
from bonsai.tool.context import Context
|
|
from bonsai.tool.cost import Cost
|
|
from bonsai.tool.covering import Covering
|
|
from bonsai.tool.debug import Debug
|
|
from bonsai.tool.demo import Demo
|
|
from bonsai.tool.document import Document
|
|
from bonsai.tool.drawing import Drawing
|
|
from bonsai.tool.feature import Feature
|
|
from bonsai.tool.geometry import Geometry
|
|
from bonsai.tool.georeference import Georeference
|
|
from bonsai.tool.group import Group
|
|
from bonsai.tool.ifc import Ifc
|
|
from bonsai.tool.ifcgit import IfcGit, IfcGitRepo
|
|
from bonsai.tool.layer import Layer
|
|
from bonsai.tool.library import Library
|
|
from bonsai.tool.loader import Loader
|
|
from bonsai.tool.material import Material
|
|
from bonsai.tool.misc import Misc
|
|
from bonsai.tool.model import Model
|
|
from bonsai.tool.nest import Nest
|
|
from bonsai.tool.owner import Owner
|
|
from bonsai.tool.parametric import Parametric
|
|
from bonsai.tool.patch import Patch
|
|
from bonsai.tool.polyline import Polyline
|
|
from bonsai.tool.profile import Profile
|
|
from bonsai.tool.project import Project
|
|
from bonsai.tool.pset import Pset
|
|
from bonsai.tool.pset_template import PsetTemplate
|
|
from bonsai.tool.qto import Qto
|
|
from bonsai.tool.raycast import Raycast
|
|
from bonsai.tool.resource import Resource
|
|
from bonsai.tool.root import Root
|
|
from bonsai.tool.search import Search
|
|
from bonsai.tool.sequence import Sequence
|
|
from bonsai.tool.snap import Snap
|
|
from bonsai.tool.spatial import Spatial
|
|
from bonsai.tool.structural import Structural
|
|
from bonsai.tool.style import Style
|
|
from bonsai.tool.surveyor import Surveyor
|
|
from bonsai.tool.system import System
|
|
from bonsai.tool.tester import Tester
|
|
from bonsai.tool.type import Type
|
|
from bonsai.tool.unit import Unit
|
|
from bonsai.tool.web import Web
|