In the past it used the `Draft.calculatePlacementsOnPath` function
but this function was moved and modified when the `PathArray`
was improved. The `calculatePlacementsOnPath` function
was moved to `draftobjects.patharray`
and renamed `placements_on_path`.
This doesn't completely fix the Fence object because some other
modifications need to be done in the calculation of the paths.
For huge models just parsing the IFC file in ifcopenshell takes
significant time. When importing via IFC explorer from the BIM
workbench, the file is already open.
This change allows to pass the ifcopenshell.file object instead of a
filename, making the process much more efficient.
Backwards compatible code to use this will be submitted for the BIM
workbench soon. Then we have a workflow, where we can insert items
from big IFC files in multiple rounds quickly.
Any space objects imported from ArchiCAD (via IFC) are rotated
by 90° around the global z-Axis. When turning the same base
shape into an other Arch object like Wall or Slab, no such error
happens.
Turns out the shape creation in Space objects is handled
differently then in other Arch objects and just copying the usual
method fixes this. I have no idea why this makes a difference.
To document why this change is necessary, a test cases is added.
Upon editing TestArch.py a number of trailing spaces have been
removed accidentally.
When getCurveSet() is called on an unsupported entity, it runs into a
NameError exception because elts is not defined. Instead print a message
and return gracefully.
This is in line with overall behaviour of the importer: Ignore
unsupported elements instead of thowing errors.
- Can be based on an edge like normal wall
- Now has a 'host' property to embed into another object (tree only)
- Mullions have different height and width properties
- Mullions or panels can be disabled