Commit Graph

973 Commits

Author SHA1 Message Date
Dion Moult 83e483555f Write documentation for structural API module 2023-01-05 16:59:48 +11:00
Dion Moult 4442c2a604 Write documentation for spatial API module 2023-01-05 16:59:48 +11:00
Dion Moult 9da91f538b Write documentation for sequence API module 2023-01-05 16:59:48 +11:00
Sigma Dimensions 3fd1209906 Fix: When counting working days, consider if calendar is applicable 2023-01-05 16:59:48 +11:00
Thomas Krijnen 50f3178d97 Feature: express rules (#2662)
* temp reasonable state, missing rule_head contents

* better state, with init() and rule_id, but some missing parameters

* performance; embed root in dict; fix lookup

* Add ast_utils

* Fixes related to listnode and typo

* First steps with code gen

* Finalize first steps towards working code generation

* Backwards compat

* Rule execution, error formatting, test cases

* Where rule: support indexing, more expressions, test plane angle measure

* positive length measure test cases

* Venture into entity rules, test actor role

* Fixed for not unary op and address test cases

* Test group qualifier and air terminal type

* typeof() implementation and test annotation curve occ

* Flexible handling of expression, type set intersection, IfcAnnotationSurface test cases

* Functions, derived attrs, fix branch order, allow to terminate branches, apply -1 to index

* Implement express query(), test cases for 2x3 bspline curve

* Function args, if-else, repeat, entity instance construction, cshape test cases

* Multiple function call arguments and other small but influential changes. IfcDotProject() almost working except for variable case

* Make lowercase and fix assignment to qualified lhs

* Entity instance schema without file, aggregate assignment workaround, range fix, lowercase instance locals, extruded area direction test cases

* Enumeration item handling, query() robustness, arbitrary profile test cases

* Empty aggregate_initializer, xor and instance equality, nested expression fix in IfcCrossProduct, axis2-3d test cases

* Numeric stable sort with indices greater then 10, get ast node parent, redeclared derived support, nested expression robustness, define entity functions, case statements, xor, mod, bool literals, nvl, unknown, conversion based unit test cases

* Safeguard for schema name case norm, case norm query variable_id

* free instance comparison, supertype serialization fix, include inherited attributes in locals, proper elif-else in case stmt, loindex, shape rep test cases

* Union operator on set, retain general_aggr_types in parse tree, test cases for property set

* Escape stmt, rule locals and statements

* Return calculated values for redeclared derived attributes

* fix for rules without stmt, add derived and inverse attributes to locals, filter unused locals, wrap exists() arg with lambda to catch indexerror, support repeated aggr init element, typeof() none check, enum namespace uppercase

* Regen 2x3 rules

* Rule test filter only on basename

* Update fixtures for compliance with full body of rules

* Add rule support to ifcopenshell.validate

* Implement usedin() function, test cases for IfcWallSC MLS

* blength

* Run code generation on all schemas

* Try to eliminate runtime pyparsing dep

* Try to eliminate runtime pyparsing dep
2023-01-05 16:59:48 +11:00
CyrilWaechter 3ab02a3931 Allow to write to unexisting directory
`ifcopenshell.write("/unexisting/path/model.ifc")` was failing without
throwing an error. It now works and a test ensure it works.
2023-01-05 16:59:48 +11:00
Sigma Dimensions b09e19dc8a Proposal to use parent productivity to calculate resource work. 2023-01-05 16:59:48 +11:00
Sigma Dimensions bea095afd0 fix offset date calculation when finish date lies outside of calendar range 2023-01-05 16:59:48 +11:00
Dion Moult efed95615e Write documentation for root API module 2023-01-05 16:59:48 +11:00
Dion Moult 9bb4b0328a Write documentation for resource API module 2023-01-05 16:59:48 +11:00
Dion Moult 5f9d1a5e63 Write documentation for pset_template API module 2023-01-05 16:59:48 +11:00
Dion Moult f6ba95935a Add documentation for pset API module 2023-01-05 16:59:48 +11:00
Dion Moult aed3bdf72a Write docs for project API module 2023-01-05 16:59:48 +11:00
Dion Moult 90d92e70b2 Write docs for profile API module 2023-01-05 16:59:48 +11:00
Dion Moult efacef1789 Write docs for owner API module 2023-01-05 16:59:48 +11:00
Dion Moult 28d9e435d1 Write documentation for the nest API module. 2023-01-05 16:59:48 +11:00
Dion Moult fe5e35bae4 Add API documentation for the material module 2023-01-05 16:59:48 +11:00
Dion Moult 1dc5b8cd33 Add docs for library API module 2023-01-05 16:59:48 +11:00
Dion Moult 8e04847310 Add docs to layer API 2023-01-05 16:59:48 +11:00
Dion Moult b37d8d3e7f Add API documentation for group module 2023-01-05 16:59:48 +11:00
Dion Moult 7d08360808 Add documentation for grid API module 2023-01-05 16:59:48 +11:00
Dion Moult 1313cb34bb Add API docs for georeferencing module 2023-01-05 16:59:48 +11:00
CyrilWaechter 78f03c8544 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
2023-01-05 16:59:47 +11:00
Ryan Schultz 6ba56fdf35 misspellings with outer_boundary 2023-01-05 16:59:47 +11:00
CyrilWaechter 386205cde7 Fix IfcSystem assignment bug introduced in f0b1935
Fixing my own bug…
Note : always run all test before pushing not only the one which used to fail…
2023-01-05 16:59:47 +11:00
CyrilWaechter ba4f8886e9 Add system assignment check
@aothms Is there a way to check against IFC formal propositions ?
Example for [IfcZone](http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcZone.htm#5.4.3.82.4-Formal-propositions)
@Moult Should I move is_assignable to an util ?
2023-01-05 16:59:47 +11:00
Thomas Krijnen f10646ad35 Distinguish between nil and derived in validate.py 2023-01-05 16:59:47 +11:00
Dion Moult 267bb65b5e Add API docs for drawing module 2023-01-05 16:59:47 +11:00
Dion Moult 0968687bc3 Add API documentation for document module 2023-01-05 16:59:47 +11:00
CyrilWaechter edee74cb31 Fix type hints #2350 for python <3.10 2023-01-05 16:59:47 +11:00
CyrilWaechter 2007047ae2 Add test suite for ifcopenshell.open #2350
Fix open function: format argument was unused
2023-01-05 16:59:47 +11:00
Dion Moult d10325f69d Add documentation for cost module 2023-01-05 16:59:47 +11:00
CyrilWaechter 1ed379e466 Allow to open .ifcZIP | .ifcXML #2350
Transparently open 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
2023-01-05 16:59:47 +11:00
CyrilWaechter fcb6971d4d IfcZone: Allow to remove an object from an IfcZone 2023-01-05 16:59:47 +11:00
Thomas Krijnen b161681ffa Fix test case 2023-01-05 16:59:47 +11:00
Vukas Pajic fffb5ab6a3 #2602 get_properties no longer throws error when EnumerationValues = None 2023-01-05 16:59:47 +11:00
Dion Moult f43e6069ec Write API documentation for control module 2023-01-05 16:59:47 +11:00
Dion Moult c6fc048fc3 Add API documentation for context module 2023-01-05 16:59:47 +11:00
Dion Moult 8bb940c851 Add API docs for constraint module 2023-01-05 16:59:47 +11:00
Dion Moult 522d3a8367 Add API documentation for classification module 2023-01-05 16:59:47 +11:00
Dion Moult 37954e35e7 Add API docs for boundary module 2023-01-05 16:59:47 +11:00
Dion Moult 2f39490fda Add docs for attribute API 2023-01-05 16:59:47 +11:00
Dion Moult f322ab6c51 Add docs for aggregate api 2023-01-05 16:59:47 +11:00
Dion Moult 3a8df68710 Minor fix 2023-01-05 16:59:47 +11:00
Dion Moult e9a4b06f2b Minor documentation tweaks 2023-01-05 16:59:47 +11:00
Thomas Krijnen bf8771c586 draw.include_projection setting 2023-01-05 16:59:47 +11:00
Dion Moult ff90728a22 New unassign container API function 2022-11-07 18:47:15 +11:00
Dion Moult 516bd37518 Fix #2550. Bug where material styles weren't included when appending from a library 2022-11-07 16:20:23 +11: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