mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-20 12:12:15 +00:00
Schema versions are no longer locked to IFC4 and 2X3. You can now load express schemas at run time.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
@debug
|
||||
Feature: Debug
|
||||
|
||||
Scenario: Select express file
|
||||
Given an empty Blender session
|
||||
When I press "bim.select_express_file(filepath='{cwd}/test/files/test.exp')"
|
||||
Then nothing happens
|
||||
|
||||
Scenario: Parse express
|
||||
Given an empty Blender session
|
||||
And I press "bim.select_express_file(filepath='{cwd}/test/files/test.exp')"
|
||||
When I press "bim.parse_express"
|
||||
Then nothing happens
|
||||
@@ -63,6 +63,13 @@ def context():
|
||||
prophet.verify()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def debug():
|
||||
prophet = Prophecy(blenderbim.core.tool.Debug)
|
||||
yield prophet
|
||||
prophet.verify()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def drawing():
|
||||
prophet = Prophecy(blenderbim.core.tool.Drawing)
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# BlenderBIM Add-on - OpenBIM Blender Add-on
|
||||
# Copyright (C) 2022 Dion Moult <dion@thinkmoult.com>
|
||||
#
|
||||
# This file is part of BlenderBIM Add-on.
|
||||
#
|
||||
# BlenderBIM Add-on 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.
|
||||
#
|
||||
# BlenderBIM Add-on 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 BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import blenderbim.core.debug as subject
|
||||
from test.core.bootstrap import debug
|
||||
|
||||
|
||||
class TestParseExpress:
|
||||
def test_run(self, debug):
|
||||
debug.load_express("filename").should_be_called().will_return("schema")
|
||||
debug.add_schema_identifier("schema").should_be_called()
|
||||
subject.parse_express(debug, "filename")
|
||||
@@ -0,0 +1,19 @@
|
||||
SCHEMA IFCROGUE;
|
||||
|
||||
TYPE IfcDonkeyPowerMeasure = REAL;
|
||||
END_TYPE;
|
||||
|
||||
TYPE IfcLabel = STRING(255);
|
||||
END_TYPE;
|
||||
|
||||
ENTITY IfcBurbRoot
|
||||
SUBTYPE OF (IfcRoot);
|
||||
AcidDamage : OPTIONAL IfcDonkeyPowerMeasure;
|
||||
END_ENTITY;
|
||||
|
||||
ENTITY IfcRoot
|
||||
ABSTRACT SUPERTYPE OF (IfcBurbRoot);
|
||||
Name : OPTIONAL IfcLabel;
|
||||
END_ENTITY;
|
||||
|
||||
END_SCHEMA;
|
||||
@@ -0,0 +1,45 @@
|
||||
# BlenderBIM Add-on - OpenBIM Blender Add-on
|
||||
# Copyright (C) 2022 Dion Moult <dion@thinkmoult.com>
|
||||
#
|
||||
# This file is part of BlenderBIM Add-on.
|
||||
#
|
||||
# BlenderBIM Add-on 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.
|
||||
#
|
||||
# BlenderBIM Add-on 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 BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import bpy
|
||||
import ifcopenshell
|
||||
import blenderbim.core.tool
|
||||
import blenderbim.tool as tool
|
||||
from test.bim.bootstrap import NewFile
|
||||
from blenderbim.tool.debug import Debug as subject
|
||||
from blenderbim.bim.ifc import IfcStore
|
||||
|
||||
|
||||
class TestImplementsTool(NewFile):
|
||||
def test_run(self):
|
||||
assert isinstance(subject(), blenderbim.core.tool.Debug)
|
||||
|
||||
|
||||
class TestAddSchemaIdentifier(NewFile):
|
||||
def test_run(self):
|
||||
subject.add_schema_identifier(TestLoadExpress().test_run())
|
||||
assert IfcStore.schema_identifiers[-1] == "IFCROGUE"
|
||||
|
||||
|
||||
class TestLoadExpress(NewFile):
|
||||
def test_run(self):
|
||||
cwd = os.path.dirname(os.path.realpath(__file__))
|
||||
schema = subject.load_express(os.path.join(cwd, "..", "files", "test.exp"))
|
||||
assert schema.schema_name == "IFCROGUE"
|
||||
return schema
|
||||
Reference in New Issue
Block a user