| Commands | CAPCAD_PSET_EDIT · CAPCAD_PSET_MANAGER · CAPCAD_PSET_INSTALL · CAPCAD_PSET_LIST · CAPCAD_PROJECT_IFC |
| Shortcuts | none |
| Ribbon | CapCad tab › BIM panel › 3D split button › PropertySets & IFC (CAPCAD_PROJECT_IFC). The palette is also opened by the Palette Open Property Sets button of the 3D Assistant and of the manager |
| Category | CAPCAD_PROJECT_IFC: Manage: Tools · the rest: none |
| Forms | CAPCAD_PSET_EDIT opens the CapCad Properties palette, docked, following the selection. CAPCAD_PSET_MANAGER opens CapCad Property Sets (7 tabs), modeless and single per session. CAPCAD_PSET_INSTALL and CAPCAD_PSET_LIST work on the command line |
| Hosts | CAPCAD_PSET_EDIT and CAPCAD_PROJECT_IFC: AutoCAD, Civil 3D, BricsCAD, GstarCAD, ZWCAD and ARES Commander. CAPCAD_PSET_MANAGER: AutoCAD and Civil 3D. CAPCAD_PSET_INSTALL and CAPCAD_PSET_LIST: Civil 3D |
| Also opened by | the Pset Manager... button of the Style Editor and, on the same tab, Apply to dwg, which installs the style's property sets; the Open Property Sets box of the 3D Assistant, which fills the sets while converting |
| Licence | all five commands are free. The data is open, and so is everything that reads, edits and exports it |
The geometry says where; the property set says what. Length, material, retroreflectivity, code, status — what the reports and the BIM model need to know about each element is stored on the entity itself, in a vocabulary the project's style defines.
- Open. The data is plain DWG data, in a record whose format is published on this page. Any CAD, any script and any other program can read it without CapCad.
- It works on any CAD. Native property sets only exist where an Autodesk vertical is installed. Open Property Sets travel inside the entity, and plain AutoCAD, GstarCAD, ZWCAD, BricsCAD and ARES Commander read and rewrite them with no plug-in at all.
- A palette like the CAD's own. Select an entity and its sets appear, grouped, editable in place; select several and the palette shows what they share and writes to all of them.
- In Civil 3D, both at once. Every write is repeated in the native property set, so Civil 3D's extended-data palette shows exactly the same values, and edits made there can be brought back.
- Automatic, calculated and numbered. A property can take its value from the entity, from a formula over other properties, or from a per-drawing counter, and display it with decimals, prefix and suffix.
- It comes out as IFC and as Excel. Each entity carrying data becomes an IFC 4.3 element with its typed property sets; the same data goes to a workbook and comes back edited.
What it does
A property set is a named package of fields attached to an entity of the drawing: pset.seguranca.defensa.corpo with the properties def.comprimento, def.material, and so on. It is the project's way of keeping, on the entity itself, what the geometry does not say.
The subject has two halves, and nearly every doubt comes from confusing them:
| Definition | Data | |
|---|---|---|
| What it is | which sets exist and what properties each one has | the values of one concrete entity |
| Where it lives | in the Property Sets section of the style (.capstyle), with a copy kept in the drawing |
on the entity itself |
| What handles it | the Style Editor, the manager's Install tab, CAPCAD_PSET_INSTALL |
the palette (CAPCAD_PSET_EDIT), the 3D Assistant, CAPCAD_PSET_LIST |
The two stores for the data
- Open Property Sets — the portable record. One record per entity, inside the entity, in a format any DWG reader understands (see The format). It needs no Object Enabler, it never becomes a proxy, and every CAD preserves it on open and save. It is the source of truth.
- The native (AEC) property set. It only exists under an Autodesk vertical. When Civil 3D is the host, every write CapCad makes is repeated in the native set, resolving the stable identifier to the style's display name. Outside Civil 3D only the portable record is written.
What holds the two together is the stable identifier. Every set and every property of the style has a var (internal, dotted, lower-case — pset.vertical.placa, def.comprimento) and a name (the name that shows in the CAD, without dots — PSET-VERTICAL-PLACA, COMP). The record always stores the var; the name is for display and for the native side. Renaming a property in the style disconnects nothing, and migration between two styles that name the same field differently works.
Workflow
- Define the sets in the style. Property Sets tab of the Style Editor: each set's
var, the name it will carry in the CAD, the list of properties with type and default value, and the rules that attach the set automatically. - Attach the sets to the entities. From the palette, with Add property sets...; with Apply rules, which attaches to every entity the sets whose rules match it; or automatically, when the 3D Assistant converts the drawing with Open Property Sets ticked.
- Fill in the values. In the palette, in place; from a formula or an automatic source, with nothing to type; or in Excel, exported and imported from the palette.
- Check. Audit... in the palette measures, for the current space, how complete the data is: which entities should carry a set and do not, and, per property, how many values are filled, empty or in error.
- Deliver.
CAPCAD_PROJECT_IFC, or the manager's IFC tab.
In Civil 3D, add one step before attaching: install the definitions in the drawing (CAPCAD_PSET_INSTALL or the manager's Install tab), so the native side has somewhere to hang the values.
The palette
CAPCAD_PSET_EDIT opens CapCad Properties, a docked palette in the shape of the CAD's own Properties window. It follows the selection: the header names the entity type and, for a block, its name; a multi-selection shows the count. Below it come the collapsible sections:
| Section | What it holds |
|---|---|
| Attributes | the block's attributes, tag and value, editable |
| CapData | the entity's extended data keys, editable (see CapData) |
| one per set | the set under the name the style gives it, one row per property, the style's properties first |
A value edited in the grid is written at once. With several entities selected, a row whose value differs between them reads *VARIES*, and an edit is written to every one of them. In Civil 3D the native set receives the same value.
Automatic and formula properties are read-only; a required property left empty is marked with *.
| Button | What it does |
|---|---|
| Add property sets... | A checklist of the sets the style defines and the selection does not carry yet. OK attaches the checked ones, each with its default values |
| Remove property sets... | A checklist of the sets the selection carries. OK removes the checked ones, values included. In Civil 3D the native set goes too |
| Select... | Builds a selection from the whole drawing or the current selection: a set, optionally one of its properties with a condition (equals, contains, empty) and a value, the CAD type, the Cap kind, a layer with wildcards, a list of handles, visible entities only. Only entities carrying Open Property Sets match |
| Update from style | Adds to the selected entities every property the style now declares for their sets, with its default. Existing values are never touched |
| Copy / Paste | Copies the sets of one entity and pastes them on the selection. The paste dialog lets you choose which sets; a pasted set replaces the same set on the target, values included |
| Edit definitions... | Opens the Style Editor on its Property Sets tab |
| Recalculate | Recomputes the automatic and formula properties of the selection |
| Apply rules | Attaches to the selected entities every set whose Applies To rules (CAD type and layer) match them |
| Excel... | Export to Excel...: one sheet per set, with handle, CAD type, layer and the properties by display name. Import from Excel...: reads the edited workbook back, shows how many values on how many entities will change, and asks before writing. Rows with no matching entity in the current space are skipped; formula and automatic properties are never read back |
| Audit... | How complete the data is in the current space. One row per set, with how many entities carry it and how many should by its Applies To kind but lack it; one row per property, with the filled, empty and #ERRO counts and whether it is required. Select entities selects the entities behind a row; Export to Excel writes the table |
| Recalculate automatically | While ticked, automatic and formula properties follow the entity as it changes |
When the style cannot be loaded, the palette shows DEFINITIONS: DRAWING COPY and reads the set names, types and defaults from the copy the drawing keeps, so the data stays readable and editable.
The manager
CAPCAD_PSET_MANAGER opens CapCad Property Sets, modeless, reused on every run. At the top, fixed on every tab: the Active drawing: label, Style Editor..., Palette Open Property Sets and Edit definitions.... At the bottom, a log mirroring the command line and a status bar.
| Tab | What it does |
|---|---|
| Install | Creates or synchronises the definitions in the drawing from a style, given as a local .capstyle path or the name of a cloud style; a label says which of the two was understood. Preview psets... shows the style's sets before anything is installed |
| Migrate | Source style, target style, and the Detach source PSets after migration box. Pairs the sets of the two styles by var and copies the values, entity by entity, across every layout; one Ctrl+Z undoes it |
| Export | One CSV per set used in the drawing, named after the set, with the handle and the properties as columns |
| Import | Reads the CSVs of a folder and gives the values back to the entities by handle. Dry run comes ticked |
| Resync | Reconciles the portable record with the native property sets, for the case where someone edited the values through Civil 3D's own palette. Open Property Sets → Civil 3D or Civil 3D → Open Property Sets; Dry run comes ticked |
| IFC | Exports as IFC 4.3 every entity carrying Open Property Sets data, with one IfcPropertySet per set, placed at its world position |
| QA | Compares the drawing with a .capstyle: sets and properties in excess, missing or with a divergent type. Also check entity values extends the check to the stored values |
The other commands
CAPCAD_PSET_INSTALL — install the definitions in the drawing (Civil 3D)
Asks CapStyle path: and creates, in the drawing's native definitions, one set for each entry of the style's Property Sets section, under the name. When a set already exists it is synchronised with the style: missing properties are added and properties no longer in the style are removed, with their values. Migrate first if you renamed a property and want to keep the values.
CAPCAD_PSET_LIST — list an entity's native sets (Civil 3D)
Asks for an entity and writes, for each native set attached, one line per property in the format id, type, name = value. It reads the native side only; to see the portable record, use the palette.
CAPCAD_PROJECT_IFC — export to IFC
On AutoCAD and Civil 3D it opens the manager's IFC tab. On BricsCAD, GstarCAD, ZWCAD and ARES Commander it asks for the .ifc file and exports directly. Every entity carrying Open Property Sets data becomes an IFC 4.3 IfcSign element placed at its world position, with one IfcPropertySet per set. Properties are typed from the style: km in metres as IfcLengthMeasure, area as IfcAreaMeasure, integer and real as numbers, the rest as text; a numeric value that does not convert becomes a text label, never an invented number.
The style's vocabulary
The Style Editor offers ten canonical set categories, each tied to a CapCad column catalogue, which is where the suggested properties come from:
var |
For |
|---|---|
pset.vertical.placa |
vertical signs |
pset.vertical.suporte |
sign supports |
pset.vertical.fundacao |
sign foundations |
pset.horizontal.faixa |
longitudinal markings |
pset.horizontal.inscricao |
pavement legends |
pset.horizontal.tacha |
road studs |
pset.seguranca.defensa.corpo |
safety barrier bodies |
pset.seguranca.defensa.terminal |
safety barrier terminals |
pset.seguranca.catadioptrico |
delineators |
pset.portico |
gantries |
The vars are internal identifiers and stay as they are in every language. A set may apply to more than one category (Applies To in the editor, all for every one), and sets outside this list are accepted as custom.
Property types
text, real, integer, km, area, geographic, geographic_pair, datetime, filepath and autoincrement. On a Civil 3D installation integer and real keep their type and everything else becomes Text; the distinction stays in the style and is what the IFC export uses.
Automatic, formula, numbered and required
- Automatic: the value comes from the entity. Sources:
length,area,volume,layer,handle,type,block,x,y,z. - Formula: the value is calculated from other properties of the same entity,
[Property]for this set or[Set:Property]for another, by display name orvar. Arithmetic, comparison,and/or/not, text joining with&, and the functionsround,floor,ceil,abs,sqrt,min,max,if,len,upper,lower,left,right,text. A formula may use another; a loop or an unknown reference stores#ERRO: reasoninstead of a value. A formula wins over an automatic source. - Auto-increment: a per-drawing counter with a start and a step.
- Display format: decimals, prefix and suffix. The stored value stays raw; the format is applied when shown.
- Required: the audit counts an empty one as a defect and the palette marks it with
*.
Name rules
The display name must be non-empty, at most 256 characters for a set and 64 for a property, must not start with a digit, and may use only letters, digits, _ and -. Spaces and dots are refused, which is why the name cannot be the same as the var.
The format
This section is the published format. It is what makes the sets open: anyone can read and write them with no CapCad installed.
Where the data is
Each entity that carries sets has, in its extension dictionary, an Xrecord under the key CAPCAD_PSET_MANAGER. Drawings written by earlier versions may hold it under CAPCAD_PSETS; readers should accept both, and a writer that finds the old key replaces it with the new one.
The Xrecord holds one UTF-8 JSON document, split into string values of at most 255 characters (DXF group code 1), in order. Concatenate them to recover the document. An entity with no sets has no Xrecord: removing the last set removes the record.
The document
{
"v": 1,
"role": "pset.vertical.placa",
"sets": {
"pset.vertical.placa": {
"placa.codigo": "R-1",
"placa.area": "3.97",
"placa.material": ""
},
"catter.qto": {
"qto.quantidade": "1"
}
}
}
| Key | Meaning |
|---|---|
v |
format version, 1 |
role |
optional: the category of the entity (one of the vars above) when the writer knows it |
sets |
one member per set, keyed by the set's var; each a map of property var to value |
Every value is a string, as typed or as calculated, with no display format applied: numbers use . as the decimal separator, km values are stored as typed, dates as text. Keys are case-insensitive on read and written sorted. A set with no properties is a valid empty object: the set is attached without values. Unknown keys are ignored on read.
The definitions copy
The drawing also keeps a copy of the style's Property Sets section, so the sets stay readable when the style is not at hand. It lives in the named objects dictionary, in the capcad dictionary, as an Xrecord under the key capcad.dwg.psets, chunked the same way, holding:
{
"v": 1,
"style": "capcad.default",
"PropertySets": [
{
"var": "pset.vertical.placa",
"name": "SINALIZACAO_VERTICAL-PLACA",
"description": "",
"appliesTo": ["pset.vertical.placa"],
"appliesToTypes": ["BlockReference"],
"appliesToLayers": ["SINA_VERT*"],
"properties": [
{ "var": "placa.codigo", "name": "CODIGO", "description": "", "type": "text", "default": "", "required": true },
{ "var": "placa.area", "name": "AREA", "type": "area", "default": "", "auto": "area", "decimals": 2, "suffix": " m²" }
]
}
]
}
A property carries var, name, description, type and default, and optionally sources (a map of item kind to column or fixed text), decimals, prefix, suffix, auto, formula, required, start and step. A set carries var, name, description, properties, and optionally appliesTo, appliesToTypes and appliesToLayers. The same objects, in the same shape, are the PropertySets array of a .capstyle file.
Reading it elsewhere
Any DWG library exposes extension dictionaries and Xrecords: open the entity, take the dictionary entry named above, join the strings, parse the JSON. To write, do the reverse and keep the chunks at 255 characters or less. No registration, no licence and no CapCad are needed.
Remembered between sessions
The manager remembers the last path used on each tab, the resync direction and the state of the dry-run and check-entities boxes. The palette remembers Recalculate automatically.
Notes
- The record travels with the entity. Copy, paste or WBLOCK takes it along. Because the values are stored by
varand are self-contained, they stay readable in the destination drawing; the association with the definitions comes from the style active there, or from the copy the drawing keeps. - Drawings from earlier versions are readable. Their property sets are read as they are and, on the next save, rewritten in the current form.
CAPCAD_XDATA_CLEANdoes not clean property sets. That command erases the entity's XData; the record lives in the extension dictionary, which is somewhere else. See Entities, groups and diagnostics.- Installing synchronises by removing. Installing a style that has lost a property deletes that property from the drawing's native definitions, and with it the native values. Migrate first.
- Two routes from the Style Editor exist on AutoCAD and Civil 3D only. The Pset Manager... button and Apply to dwg send
CAPCAD_PSET_MANAGERandCAPCAD_PSET_INSTALL. The Edit definitions... button of the palette works on all five CADs.