PCF compliance - shtirlitsDva/Revit-PCF-Exporter GitHub Wiki
The add-in implements parts of the PCF file specification to create a valid PCF file to be imported in other software which can read this format. The ultimate goal is to implement 100% of the format specification. The following discusses the parts that are currently implemented.
It is strongly recommended to acquaint yourself with the PCF file format specification. It can be found here.
PCF Header
PCF keyword | Value used | Note |
---|---|---|
ISOGEN-FILES | ISOGEN.FLS | Default spec |
UNITS-BORE | INCH, MM | User defined, interface |
UNITS-CO-ORDS | INCH, MM | User defined, interface |
UNITS-BOLT-DIA | MM | Bolts not implemented |
UNITS-BOLT-LENGTH | MM | Bolts not implemented |
UNITS-ROTATION | --- | Not implemented |
UNITS-STIFFNESS | --- | Not implemented |
UNITS-WEIGHT | KGS, LBS | User defined, interface |
UNITS-WEIGHT-LENGTH | METER, FEET | User defined, interface |
Pipeline Header Information
Parameter | PCF keyword |
---|---|
Piping System: Abbreviation | PIPELINE-REFERENCE |
PCF_PIPL_SPEC | PIPING-SPEC |
PCF_PIPL_TRACING | TRACING-SPEC |
PCF_PIPL_INSUL | INSULATION-SPEC |
PCF_PIPL_PAINT | PAINTING-SPEC |
PCF_PIPL_MISC1 -- MISC5 | MISC-SPEC1 -- SPEC5 |
PCF_PIPL_JACKET | JACKET-SPEC |
PCF_PIPL_REV | REVISION |
PCF_PIPL_PROJID | PROJECT-IDENTIFIER |
PCF_PIPL_AREA | AREA |
PCF_PIPL_DATE | DATE-DMY |
PCF_PIPL_NOMCLASS | NOMINAL-CLASS |
Not implemented | BEND-RADIUS |
Not implemented | ITEM-ATTRIBUTE0 -- 9 |
PCF_PIPL_TEMP | PIPELINE-TEMP |
PCF_PIPL_TYPE | PIPELINE-TYPE |
PCF_PIPL_GRAV | SPECIFIC-GRAVITY |
PCF_PIPL_PREFIX | SPOOL-PREFIX |
Not implemented | ATTRIBUTE0 -- 199 |
Not implemented | WELD-PREFIX-GENERAL |
Not implemented | WELD-PREFIX-FABRICATION |
Not implemented | WELD-PREFIX-ERECTION |
Not implemented | WELD-PREFIX-OFFSHORE |
Not implemented | SUPPORT-WELD-PREFIX-FABRICATION |
Not implemented | SUPPORT-WELD-PREFIX-ERECTION |
Not implemented | SUPPORT-WELD-PREFIX-OFFSHORE |
Not implemented | START-CO-ORDS |
Not implemented | HIGHEST-PART-NUMBER |
Not implemented | HIGHEST-UNIQUE-IDENTIFIER |
Not implemented | HIGHEST-SPOOL-NUMBER |
Not implemented | HIGHEST-WELD-NUMBER |
Not implemented | HIGHEST-WELD-SUPPORT-NUMBER |
Not implemented | HIGHEST-ASSEMBLY-NUMBER |
Not implemented | OFFSET-IMPERIAL, OFFSET-METRIC |
Component attributes
Component type
PCF_ELEM_TYPE contains the component type specification such as ELBOW, VALVE, FLANGE, PIPE etc. This field is MANDATORY and in fact is the most important field for elements. NOTE: Elements with empty PCF_ELEM_TYPE are ignored when exporting data to PCF file.
Currently, the types in the following table are implemented. Please do not hesitate to request implementation of not yet implemented types.
Implemented Element Type Keywords |
---|
PIPE |
ELBOW |
TEE |
REDUCER-CONCENTRIC |
REDUCER-ECCENTRIC |
FLANGE |
FLANGE-BLIND |
CAP |
OLET |
FILTER |
INSTRUMENT |
VALVE |
VALVE-ANGLE |
INSTRUMENT-DIAL |
SKEY
PCF_ELEM_SKEY contains the PCF component keyword SKEY. See PCF reference guide for information about valid SKEY values. This field is MANDATORY except for pipes for which it is blank. This field is second most important element attribute.
Coordinates
Coordinates for such PCF keywords as END_POINT, BRANCH1_POINT, CENTRE_POINT etc. are obtained from Revit connector and element geometry. Nominal size of element ends is read from connector information. The coordinates and sizes are written in the units specified on the config tab of the interface. The keywords END_POINT will get appended (after the coordinates) anything stored in PCF_ELEM_END1 (primary connector) and PCF_ELEM_END2 (secondary connector). Keyword BRANCH1_POINT will get appended from PCF_ELEM_BP1. For more information see "External Keypoints" in PCF Reference Guide. NOTE: Please be aware, that for pipe elements, the Revit API does not reliably return connectors in a certain order. Thus you may notice that pipe ends switch places when comparing two consecutive exported PCF files. This is true for any elements actually, that's why pipe accessories and fittings implement primary, secondary and tertiary classification of end points -- to be able to reliable discern between end points.
Allowable Attributes
Please note that there are a many more attributes that are listed in Component Information Sheets in PCF Reference Guide. If they do not appear in the following table it means that they are not implemented.
Parameter | PCF keyword |
---|---|
PCF_ELEM_CATEGORY | CATEGORY |
PCF_ELEM_STATUS | STATUS |
PCF_ELEM_SPEC | PIPING-SPEC |
PCF_ELEM_TRACING_SPEC | TRACING-SPEC |
PCF_ELEM_INSUL_SPEC | INSULATION-SPEC |
PCF_ELEM_PAINT_SPEC | PAINTING-SPEC |
PCF_ELEM_MISC1 -- MISC5 | MISC-SPEC1 -- SPEC5 |
Not implemented | INSULATION |
Not implemented | TRACING |
Not implemented | FLOW |
Read from Revit | UNIQUE-COMPONENT-IDENTIFIER |
Not implemented | MATERIAL-LIST |
COMPONENT-IDENTIFIER
Every element is assigned a number by the program upon the exportation of PCF data. This number is stored in the PCF_ELEM_COMPID and is used in conjunction with PCF keyword COMPONENT-IDENTIFIER.
Associated Components
Not implemented.
Information Items
Messages
Not implemented.
Reference Dimensions
Not implemented.
Thickness Measurement Location
Not implemented
Other Information Items
Not implemented
Material Attributes
Material data
According to recommendation in PCF Reference Guide, every component must have an informative description. This information is stored in PCF_MAT_DESCR. This field is MANDATORY and is used in conjunction with PCF keyword DESCRIPTION. This data is then used to create a material list. Values for PCF keyword MATERIAL-IDENTIFIER is determined by the program and is stored in the parameter PCF_MAT_ID. Keyword ITEM-CODE is not implemented.
Additional Material Attributes
Not implemented.
Extraction Techniques
No parts implemented except:
Tap Connections
See TAP Connections.
Supports
Only basic support for pipe supports implemented -- just enough to get Isogen based products (fx. Spoolgen) to accept those.
Pipe supports implement following PCF keywords with corresponding Revit parameters:
Revit parameter | PCF keyword | Note |
---|---|---|
PCF_ELEM_TYPE | Element declaration | Must contain "SUPPORT" |
PCF_ELEM_COMPID | COMPONENT-IDENTIFIER | Programatically determined |
CO-ORDS | Read from Revit geometry | |
PCF_ELEM_SKEY | SKEY | User input |
PCF_ELEM_CATEGORY | CATEGORY | User input |
PCF_MAT_ID | MATERIAL-IDENTIFIER | Programatically determined |
PCF_ELEM_SUPPORT_NAME | NAME | Support specific keyword to facilitate export to Caesar II, must contain a valid name from PCF_RES_MAP.TXT. Must be empty for all other elements. |
UNIQUE-COMPONENT-IDENTIFIER | Programatically determined | |
PCF_MAT_DESCR | DESCRIPTION | Mandatory description of the support. |
See Pipe supports for how to implement supports in Revit so that application parses them correctly.
System Isometrics
Not implemented
End Connection and Position Types
Not implemented
Equipment Isometrics
Not implemented
Special Types of Joint
The special types of joint may be achieved through manipulating the SKEY and end data. Experiment by setting up a few different types with different settings as described in the corresponding chapter in PCF Reference Guide.
Use PCF_ELEM_END1 and PCF_ELEM_END2 to specify needed end data.