Andrej730
708dc6aca2
IFC4X3/IFC2X3 pset templates library
...
Generated from xmls from the ISO release of IFC4X3.
Based on https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/annex/annex-a/general-usage/IFC4_ADD2.ifc
Also generated pset templates library for IFC2X3 (also based on similar xmls) but IFC2X3 ifc pset library is using... IFC4X3 schema because IfcPropertySetTemplate and IfcRelDeclares are not available in IFC2X3. Which is okay for our purposes for now.
Will need to update IFC4X3 library if one of the issues will be resolved:
https://github.com/buildingSMART/IFC4.3.x-development/issues/587
https://github.com/buildingSMART/IFC4.3.x-development/issues/586
2023-02-23 18:17:14 +05:00
Andrej730
ab9a4856ab
Update entity-types mapping for ifc4
...
Added IfcWindowStyle and IfcDoorStyle for suitable StandartCases since StandartCases inherit from IfcDoor and IfcWindow.
2023-02-17 17:57:17 +05:00
Andrej730
d52618277e
Ifc4x3 - entity-types mapping
...
- added mapping entity-types mapping based on iso release of ifc4x3
- added some manual corrections for `generate_util_type_json.py` if someone would regenerate the map for ifc4.
- manual correction in ifc4x3 mapping for IfcCivilElement. It could be removed in the future releases of IFC if https://github.com/buildingSMART/IFC4.3.x-development/issues/583 is resolved
If curious to look what were the changes for mapping between ifc4 and ifc4x3:
https://github.com/IfcOpenShell/IfcOpenShell/commit/da51253fb0a9d08aa93f5fe3c074d3592b3aa997#diff-98f525c91bb47b9820e603fba61cc015d3e6ae7261593d727c51114e3ff73aa7
2023-02-17 17:57:16 +05:00
Andrej730
476ab506d0
Added ifc4x3 json schema and it's parser
...
API for docs works the same way as it worked for ifc2x3 and ifc4.
Besides changing `doc.py` and adding `.json` schemas added `ifc4x3dev_scrape_data_for_docs.py` (it's kind of hacky now and relies on `server.py` code from the further mentioned repo) that's used to parse some entities descriptions from https://github.com/buildingSMART/IFC4.3.x-development for later use in `doc.py`.
2023-02-15 18:38:04 +05:00
Dion Moult
82b201a14e
Fix #2352 . Text styling is now possible with custom classes.
2023-02-12 15:01:47 +11:00
Andrej730
0d0691a012
Door modifier - double doors type support
2023-02-11 16:09:13 +05:00
Dion Moult
ceaa930aad
Fix #2756 . Bug where reassigning classes with a enum didn't work.
2023-02-11 11:03:35 +11:00
Dion Moult
ae564d1b61
Fix #1040 . New utility for geometric shape analysis only requiring numpy.
2023-02-10 16:03:16 +11:00
Dion Moult
50d71d5ea1
Black code and make profile representation optional for windows.
2023-02-09 20:13:14 +11:00
Sigma Dimensions
7fe2634d32
Improve guess schedule date range ( including tasks with input assignements)
2023-02-08 08:18:08 +01:00
Dion Moult
88bddb9531
See #2520 . You can now duplicate drawings.
2023-02-08 12:29:49 +11:00
Dion Moult
e40bbf2525
See #1806 . Typed fillings now share the same representation for their openings.
2023-02-06 17:01:29 +11:00
Dion Moult
f72d48aab5
Fix bug where calendar caching meant invalid duration calculations if you edited your calendar after a date calculation.
2023-02-03 10:06:55 +11:00
Dion Moult
be26a77ecb
Support times specified as ISO strings too in date utils, not just datetimes.
2023-02-02 23:01:49 +11:00
Dion Moult
7c275a99a2
New utility functions for automatic local to global elevation conversions and easier unit conversions
2023-02-02 23:01:12 +11:00
Dion Moult
ab6159f173
See #1848 . Refactor cost data class.
2023-01-30 20:53:17 +11:00
Thomas Krijnen
c0c6c23fca
Update schema.py
2023-01-29 09:47:46 +01:00
Dion Moult
396fd5520f
Fix #2349 . Be more defensive on invalid smart annotations.
2023-01-29 15:15:00 +11:00
Dion Moult
efc3a692cb
Fix #2726 .
2023-01-29 12:27:50 +11:00
Dion Moult
6a2307308c
Fix bug where copying objects with profiles should only share profiles if the profile is named.
2023-01-28 21:51:00 +11:00
Andrej730
9f0ad9be3c
Black formatting window modifier
2023-01-25 11:13:41 +05:00
Andrej730
cf6acd5dd6
ShapeBuilder - added 3d rectangles and polylines support
2023-01-25 11:10:20 +05:00
Andrej730
d0cf5f9d0c
Fixed ShapeBuilder bug for mirroring IfcExtrudedAreaSolid
...
Also fixed typo in shape_builder_examples
2023-01-25 11:10:19 +05:00
Sigma Dimensions
a5ca7c540f
remove useless lines and run quality check black
2023-01-20 21:39:24 +01:00
Sigma Dimensions
c9b0a7c3de
Attempt to fix selector bug where retrieving material values gets caught in exception
2023-01-20 21:23:40 +01:00
Vukas Pajic
d9f1cb5525
reassign_class now preserves original STEP ID and GLOBALID - #2701
2023-01-16 13:34:57 +01:00
Dion Moult
ba7741fef5
Fix #2285 . You can now get all the elements in a presentation layer.
2023-01-12 12:28:09 +11:00
Dion Moult
c8ba96cde8
Make syntax highlighting explicit in docs
2023-01-10 10:16:28 +11:00
Ryan Schultz
3ce010de77
added IfcCivilElement to entity_to_type_map_4.json
2023-01-09 12:14:11 +11:00
Dion Moult
360b9956c0
Fix failing tests from refactor which I really should've done before the release
2023-01-09 11:00:46 +11:00
Andrej730
1888048d4d
Moved ShapeBuilder to separate module #2679
...
Moved ShapeBuilder to separate module - now `mathutils` will be only required if you're actually using ShapeBuilder (related to #2679 )
2023-01-08 19:47:18 +05:00
Andrej730
c29048ecfb
Furniture library bug fixes
2023-01-08 19:47:18 +05:00
Andrej730
23c7bc3f56
Added ShapeBuilder class and library for non structural assets (
...
`ShapeBuilder` class is used to programmatically create 2d and 3d ifc shapes and representations. It's inspired by the way OpenSCAD language is designed - the goal was to create a readable and easy way to create new shapes. The class can be imported from `ifcopenshell.util.representation` module.
Examples of things created with `ShapeBuilder` can be found in `shape_builder_examples.py` or `generate_furniture_library.py` / `Non_structural_assets_library.ifc`.
Also added ifc library of non structual assets (furniture etc) - `Non_structural_assets_library.ifc`. All assets are using most common dimensions for them - it makes it good for prototyping. Related to https://community.osarch.org/discussion/1192
2023-01-06 16:35:55 +05:00
Sigma Dimensions
981b6cd65f
Various 4D improvements:
...
- refactor work schedule visualisation operator
- Fix text handler
- Improve durations UI for task times (proposal to replicate for all durations)
- Simplify durations ( P32H as P4D or P1D8H)
- Implement years/months in various datetime calculations
- Feature to customise animation colors per construction task type
- Feature to add Visual task bars
- Feature to customise Visual task bar material colors
- Move helper functions from blenderbim.bim.module.sequence to ifcopenshell.util.sequence
2023-01-04 02:08:52 +01:00
Sigma Dimensions
2bb4e645b2
Fix: When counting working days, consider if calendar is applicable
2022-12-26 17:19:57 +01:00
Sigma Dimensions
ea1c306733
fix offset date calculation when finish date lies outside of calendar range
2022-12-18 03:34:20 +01:00
CyrilWaechter
25a7a95284
Allow to write .ifcZIP | .ifcXML #2350
...
Transparently write any .ifc | .ifcXML | .ifcZIP formatted file
with any extension :
- by guessing format from its extension
(eg. .zip | .ifczip | .ifcZIP | .ifcXML | .ifcxml | .IFC | .ifc)
zipped file can file can be of any supported format
- by specifying a format
- by specifying if it should be zipped
2022-11-26 05:19:01 +01:00
CyrilWaechter
8386aa0e0a
IfcZone: Allow to remove an object from an IfcZone
2022-11-20 17:48:30 +01:00
Vukas Pajic
f0b9c9ad7b
#2602 get_properties no longer throws error when EnumerationValues = None
2022-11-18 14:35:57 +01:00
Dion Moult
adc59de2bf
Minor fix to accommodate null descriptions and parents with no attributes
...
# Conflicts:
# src/ifcopenshell-python/ifcopenshell/util/doc.py
2022-11-03 17:13:56 +11:00
Andrej730
c0909dace0
black.py formatting
2022-11-02 17:35:51 +06:00
Andrej730
d9f8aa4e7b
Added ifc types schema for Ifc2x3 and Ifc4
...
Types schema located in separate json file, it's structure:
{ ifc_type_name: {"description": type_description, "spec_url": type_spec_url} }
I've also added new API function to get type data - `get_type_doc(version, ifc_type)`
2022-10-30 11:33:20 +06:00
Andrej730
9a25db6584
get_attribute_doc get_entity_doc now use recursive method by default
2022-10-29 18:31:40 +06:00
Andrej730
17ccd0adf7
Simplified getting entity parent information for schema api
...
Removed unnecssary parent information from json schema - now API is getting it from ifcopenshell schema.
2022-10-29 18:27:51 +06:00
Andrej730
937f39c898
Added information about parent entity to schema
...
Added information about parent entity to schema (it's located in "parent_entity" entity parameter inside schema), both for Ifc2x3 and Ifc4.
Modified get_entity_doc and get_attribute_doc - now you can use additional optional parameter `recursive=True` with those functions - then parent entities attributes will be included to the list of entity's attributes. For example IfcWindow will also have attributes from IfcBuildingElement, IfcElement, IfcProduct etc...
2022-10-29 17:35:43 +06:00
Andrej730
0b5ccd88a5
Added descriptions for psets and qsets to ifc2x3, ifc4 schema
...
Example of getting pset description: `get_property_set_doc("IFC4", "Pset_ZoneCommon")['description']`
2022-10-29 16:31:54 +06:00
Andrej730
f2c2fa8dce
Added entities predefined types to schema
...
Both for ifc2x3 and ifc4 but there is still a problem with ifc2x3 predefined types description - it's empty since constants have no description in ifc2x3. For temporary solution I've used description available on ifc4 for ifc2x3 too.
I've also added API function to get entity's predefined type description: `get_predefined_type_doc(version, entity, predefined_type)`
Example for the same constant that has no description in ifc2x3 and has one in ifc4:
https://github.com/buildingSMART/IFC/blob/Ifc2.3.0.1/Constants/s/STEAMINJECTION_1b6zZZM99EevT2LVdQ7B%24V.xml
https://github.com/buildingSMART/IFC/blob/Ifc4.0.2.1/Constants/s/STEAMINJECTION_1b6zZZM99EevT2LVdQ7B$V.xml
2022-10-27 16:23:46 +06:00
Dion Moult
fb786bb90c
Batch reassignments now take advantage of inverse indices for a slight speedup. See #2408 .
2022-10-25 16:27:13 +11:00
Dion Moult
67955b4e35
Batch reassign utility to address performance issues in #2408 .
2022-10-20 18:25:14 +11:00
Dion Moult
9a0f29170a
Fix #2518 . Don't fail on non-existent schemas to allow for custom schemas
2022-10-20 15:03:33 +11:00