mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-12 10:33:20 +00:00
typing
This commit is contained in:
@@ -1552,7 +1552,7 @@ class BIM_PT_snappping(Panel):
|
||||
return context.mode == "OBJECT"
|
||||
|
||||
def draw(self, context):
|
||||
prop = context.scene.BIMSnapProperties
|
||||
prop = tool.Snap.get_snap_props()
|
||||
layout = self.layout
|
||||
col = layout.column(align=True)
|
||||
col.prop(prop, "vertex", toggle=True, icon="SNAP_VERTEX")
|
||||
@@ -1560,7 +1560,7 @@ class BIM_PT_snappping(Panel):
|
||||
col.prop(prop, "edge_center", toggle=True, icon="SNAP_MIDPOINT")
|
||||
col.prop(prop, "edge_intersection", toggle=True, icon="SNAP_GRID")
|
||||
col.prop(prop, "face", toggle=True, icon="SNAP_FACE")
|
||||
groups = context.scene.BIMSnapGroups
|
||||
groups = tool.Snap.get_snap_groups()
|
||||
row = layout.row(align=True)
|
||||
row.label(text="Bonsai Target Selection")
|
||||
row = layout.row(align=True)
|
||||
|
||||
@@ -56,7 +56,7 @@ from collections.abc import Iterable, Callable, Generator, Sequence, Sized
|
||||
if TYPE_CHECKING:
|
||||
from sun_position.properties import SunPosProperties
|
||||
import bpy.stub_internal.rna_enums as rna_enums
|
||||
from bonsai.bim.prop import BIMProperties, BIMObjectProperties
|
||||
from bonsai.bim.prop import BIMProperties, BIMObjectProperties, BIMSnapProperties
|
||||
from bonsai.bim.module.attribute.prop import BIMAttributeProperties
|
||||
from bonsai.bim.module.constraint.prop import BIMConstraintProperties, BIMObjectConstraintProperties
|
||||
from bonsai.bim.module.covetool.prop import CoveToolProperties
|
||||
|
||||
@@ -86,8 +86,8 @@ class Ifc(bonsai.core.tool.Ifc):
|
||||
|
||||
@classmethod
|
||||
def get_schema(cls) -> ifcopenshell.util.schema.IFC_SCHEMA:
|
||||
if IfcStore.get_file():
|
||||
return IfcStore.get_file().schema
|
||||
if ifc_file := IfcStore.get_file():
|
||||
return ifc_file.schema
|
||||
|
||||
@classmethod
|
||||
def clear_history(cls) -> None:
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Bonsai. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import annotations
|
||||
import bpy
|
||||
import ifcopenshell
|
||||
import ifcopenshell.util.unit
|
||||
@@ -26,13 +27,26 @@ import math
|
||||
import mathutils
|
||||
from mathutils import Matrix, Vector
|
||||
from lark import Lark, Transformer
|
||||
from typing import Union, Any
|
||||
from typing import Union, Any, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from bonsai.bim.prop import BIMSnapGroups, BIMSnapProperties
|
||||
|
||||
|
||||
class Snap(bonsai.core.tool.Snap):
|
||||
tool_state = None
|
||||
snap_plane_method = None
|
||||
|
||||
@classmethod
|
||||
def get_snap_props(cls) -> BIMSnapProperties:
|
||||
assert (scene := bpy.context.scene)
|
||||
return scene.BIMSnapProperties # pyright: ignore[reportAttributeAccessIssue]
|
||||
|
||||
@classmethod
|
||||
def get_snap_groups(cls) -> BIMSnapGroups:
|
||||
assert (scene := bpy.context.scene)
|
||||
return scene.BIMSnapGroups # pyright: ignore[reportAttributeAccessIssue]
|
||||
|
||||
@classmethod
|
||||
def set_snap_plane_method(cls, value=True):
|
||||
cls.snap_plane_method = value
|
||||
@@ -484,7 +498,7 @@ class Snap(bonsai.core.tool.Snap):
|
||||
def select_snapping_points(cls, context, event, tool_state, detected_snaps):
|
||||
def filter_snapping_points_by_type(snapping_points):
|
||||
options = ["Plane", "Axis"]
|
||||
props = context.scene.BIMSnapProperties
|
||||
props = tool.Snap.get_snap_props()
|
||||
for prop in props.__annotations__.keys():
|
||||
if getattr(props, prop):
|
||||
options.append(props.rna_type.properties[prop].name)
|
||||
@@ -494,7 +508,7 @@ class Snap(bonsai.core.tool.Snap):
|
||||
|
||||
def filter_snapping_points_by_group(detected_snaps):
|
||||
options = ["Wireframe", "Axis", "Plane"]
|
||||
props = context.scene.BIMSnapGroups
|
||||
props = tool.Snap.get_snap_groups()
|
||||
for prop in props.__annotations__.keys():
|
||||
if getattr(props, prop):
|
||||
options.append(props.rna_type.properties[prop].name)
|
||||
|
||||
Reference in New Issue
Block a user