ifcopenshell.api.pset_template.add_prop_template
¶
Module Contents¶
- ifcopenshell.api.pset_template.add_prop_template.add_prop_template(file: ifcopenshell.file, pset_template: ifcopenshell.entity_instance, name: str = 'NewProperty', description: str | None = None, template_type: str | None = None, primary_measure_type: str | None = None) ifcopenshell.entity_instance ¶
Adds new property templates to a property set template
Assuming you first have a property set template, this allows you to add templates for properties within that property set. A property template lets you specify the name, description, and data type of a property. When the template is provided to a model author, this gives them clear instructions about the intention of the property and exactly which data type to use.
Types of properties and quantities include:
P_SINGLEVALUE - a single value, the most common type of property.
- P_ENUMERATEDVALUE - the property value may one or more values chosen
from a preset list of values.
P_BOUNDEDVALUE - the property has a minimum, maximum, and set value.
P_LISTVALUE - the property has a list of values.
P_TABLEVALUE - the property has a table of values.
- P_REFERENCEVALUE - the property is a parametric reference to another
value. This is only for advanced users.
Q_LENGTH - the quantity is a length.
Q_AREA - the quantity is an area.
Q_VOLUME - the quantity is a volume.
Q_COUNT - the quantity is counting a item.
Q_WEIGHT - the quantity is a weight.
Q_TIME - the quantity is a time duration.
- Parameters:
pset_template – The property set template to add the property template to.
name – The name of the property
description – A few words describing what the property stores.
template_type – The type of the property. If not provided, P_SINGLEVALUE or Q_LENGTH will be assumed (depending on the pset type).
primary_measure_type – The data type of the property, doesn’t used for quantity set templates. Consult the IFC documentation for the full list of data types.
- Returns:
The newly created IfcSimplePropertyTemplate.
Example:
# Create a simple template that may be applied to all types template = ifcopenshell.api.pset_template.add_pset_template(model, name="ABC_RiskFactors") # Here's one example property ifcopenshell.api.pset_template.add_prop_template(model, pset_template=template, name="HighVoltage", description="Whether there is a risk of high voltage.", primary_measure_type="IfcBoolean") # Here's another ifcopenshell.api.pset_template.add_prop_template(model, pset_template=template, name="ChemicalType", description="The class of chemical spillage.", primary_measure_type="IfcLabel")