User defined property sets - Revit native parameters

User defined property sets - Revit native parameters

joliveira_GEG
Contributor Contributor
4,399 Views
10 Replies
Message 1 of 11

User defined property sets - Revit native parameters

joliveira_GEG
Contributor
Contributor

Hi everyone!

I've been working on a user defined property sets file, and I want to create a Pset with some shared parameters and some native parameters.

Until now, I have made it with all the shared parameters and some native (like Manufacturer, Is External, Fire Rating, etc...). I need to do the same with two other parameters: Building Story and Material Name.

These two parameters appear automatically on IFC on the Summary tab, but I need to have them on my new Pset.

 

I've already found that some parameters have slight differences between the foreground name and the real name.

Does anyone know the real name of these two parameters?

 

Thank you.

 
joliveira_GEG_0-1684935976681.png

 

joliveira_GEG_1-1684935977381.png
 
 
See the discussion on Revit API Forum:
0 Likes
Replies (10)
Message 2 of 11

TripleM-Dev.net
Advisor
Advisor

Hi @joliveira_GEG,

 

Building story is actually just the level the elements is attached/hosted on.

For loadable families it's mostly the parameter "Level" depending on host behavior of family.

For walls it's the parameter "Base Constraint" and so has each category it's own parameters, however the Level parameter will catch most of them.

 

Material name is different, as a family can contain multiple materials.

For walls, Floors and Ceilings that have a single material, "Structural Material" parameter could be used it it's checked in the type settings of the system family structure layers.

 

In loadable families with a single material use a Shared material parameter (and attach it to geometry) and use that in the PSet.

 

For loadable families with multiple materials, use a material parameter for each material. Next use a instance text parameter and define a "IfcExporter parameter expression" with the names of the material parameters.

 

For example the following material parameters: (these can be instance or Type)

Material_Frame

Material_Glas

Material_Door

 

Next use a text parameter (instance !), for example "Material_Combined"

and set it's formula to the following, include the "!:

"={$type('Material_Frame') + ',' + $type('Material_Door') + ',' + $type('Material_Glas') }"

Note the $type = for type parameter, else use $this = for instance parameters

In the user property set file add the line:

Material Name    Label    Material_Combined

With this the names of the materials are exported to a single line in the IFC.

for the Expressions also see: Revit IfcExporter parameter expression 

 

Alternative is to reference all material parameters in the user property sets file (for user families).

 

The Building story (level) and Material name(s) can have various source parameters and can be difficult (almost impossible) to get them all.

To get all you would need a addin (like the IfcExporter itself) and save the values to dedicated project parameters which get filled in before the IFC is exported and use those in the User property sets file.

 

- Michel

0 Likes
Message 3 of 11

prasadienator
Enthusiast
Enthusiast

Thanks for the idea, if I understood it correctly, it is possible?

I am stuck here not knowing which parameter should i use for mapping, i need to pack it unde custom Pset.

 

 

prasadienator_0-1694617203613.png

 

 

0 Likes
Message 4 of 11

joliveira_GEG
Contributor
Contributor

Hi @prasadienator,

 

Yes, it's possible to do it with custom and most native parameters. I suggest you watch this short video from "BIM me up!" with an explanation: https://youtu.be/SswHKtcM3mI.

 

My question was about some native parameters like Building Storey or Material Name because they have different property names for different categories of elements. So, I didn't achieve one way to map these parameters to all categories at once.

0 Likes
Message 5 of 11

prasadienator
Enthusiast
Enthusiast

Thanks!

The video talks about creating custom psets with a Txt file, thats fine.

 

I was just wondering if it is possible to map the parameter 'Floor' in the screenshot under my custom Pset.

0 Likes
Message 6 of 11

joliveira_GEG
Contributor
Contributor

You can do it the same way, using the native parameter name. Unless you reach the case of some parameters like those two that I told you.

0 Likes
Message 7 of 11

tariqallaham
Enthusiast
Enthusiast

Thanks @TripleM-Dev.net 
Would you please explain where to write the formela? is it in Revit as a global parameter or is it in the user defined parameterset text file.
I am very new to this and find everything very tricky! All help is highly appreciated. 

0 Likes
Message 8 of 11

TripleM-Dev.net
Advisor
Advisor

Hi @tariqallaham ,

 

Sure; the formula has to be applied to a instance text parameter. (also see the link in my previous post)

The formula itself can have a reference to a type property of the element ($type) or instance properties ($this)

 

Now for a UserFamily I would build  the formula into the family (else each instance would need to have the formula added to the parameter)

 

Below a sample for combining 2 materials into one text line by way of a formula:

So the "materiaal_gecombineerd" is the instance text parameter that will have the formula

By fixing the formula string in the formula field it will automatically set it in the project.

RevitIfcFormulaSample.jpg

 

And the line in the User Pset would be, to export the formula result to a IFC field named "Material"

Material         Label       materiaal_gecombineerd

 

Fields in the formula need to be visible as instance or type parameters, so material from walls won't work as the materials are edited in the structure dialog and not directly visible in the type. Only if one layer is set to structural the type parameter name "Structural Material" can be used (but this single parameter and can also be used directly in a Pset setup)

 

Also of note: the formula determines the datatype itself, so if the formula only contains a reference to a single material it will come out as it's Id number and not name. Only in combination of minimal 2 fields the output will be a string and will use the name property of the material.

 

In a project environment you could define the formula value in a global parameter and then attach that to the defined intance text parameter defined in the Pset.

 

There's a lot of possibilities with the formula's but also some limits, so if the sample isn't enough supply a real sample of what you're trying to do.

 

- Michel

0 Likes
Message 9 of 11

csaba_heczey-szabo
Explorer
Explorer

Hi @TripleM-Dev.net 

What about walls and floors with multiple materials? 

Currently I am writing a user defined property set file for my company, and I struggle to write the layer properties into the pset.
The core of the problem is a structure like this: (a layered floor element, with a concrete layer with variable thickness as the base)

csaba_heczeyszabo_0-1743087362142.png

csaba_heczeyszabo_1-1743087443940.png


I would like to export the area, average thickness, and volume data to IFC 4.0, for every single layer individually. The problem is the volume of the concrete layer, as it seems impossible to do. 

The parameters are showing up so nicely in a schedule, I just want to put them into an IFC.

csaba_heczeyszabo_2-1743087801340.png

 

If it is not possible this way, is there any other way to export these layer properties to an IFC? 

Thanks,
Csaba

 

0 Likes
Message 10 of 11

TripleM-Dev.net
Advisor
Advisor

I Think you're going to need to export the IFC with the IFC Scheme 4.x (and let the builtin system of the Ifc Exporter handle it, aka use the Material Pset that's generated in the IFC)

Haven't experimented with it yet.

 

Also we're stepping off using the material name as property in or own Pset and go back to using the Materials listed under the Material Pset.

0 Likes
Message 11 of 11

csaba_heczey-szabo
Explorer
Explorer

The IFC 4 Material Pset works alright with layered structures with constant width, as it writes the thickness data of the individual layers. Then, we calculate the volumes based on the area, and the individual layer thickness. 


We have problems with the variable thickness layers, as only the max thickness value is exported, and we have not yet figured out a way to calculate the volume of a let's say sloped concrete substrate, on a low slope roof. 

csaba_heczeyszabo_0-1743407367126.png

 

0 Likes