I thought instance properties were saved on assembly level?

I thought instance properties were saved on assembly level?

YannickEnrico
Advisor Advisor
1,474 Views
20 Replies
Message 1 of 21

I thought instance properties were saved on assembly level?

YannickEnrico
Advisor
Advisor

So I'm experiencing unexpected behaviour currently, and I'm hoping you could help me iron out whether this is my wrongful understanding of the feature, or if something doesn't work as intended.

I can't share the CAD data here for reasons, so let me explain the situation;

I have two assemblies with different names. They have the same parts in them in different configurations (they're vessels, and thus it's about the angular orientation of features).

As can be seen on the screenshot below, I've added an instance property called Charge No., which is in place in both assembly A and B

Now, whenever I add data to that column in assembly A, the same data is written in that column in assembly B.
That behaviour surprises me, as I was of the understanding instance properties were tied to the assembly in which they are in place?

 

YannickEnrico_0-1712123225195.png

 

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Accepted solutions (1)
1,475 Views
20 Replies
Replies (20)
Message 2 of 21

James_Willo
Alumni
Alumni

Yes, instance properties are only saved at the assembly level and for top level only. 
If you went into a sub assembly and added them in there, they would float to the top, but wherever you place that sub assembly, every instance will have the same instance properties because they were entered at sub assembly level. 
I'm not sure what you've done here from this image. I don't know if maybe your row merge settings are affecting this?




James W
Inventor UX Designer
0 Likes
Message 3 of 21

YannickEnrico
Advisor
Advisor

Hi @James_Willo 

I have these two assemblies under different names, and instance properties entered in one (on top level), appears to jump to the other (on top level)

In regards to row merging, I have no row merging enabled, and I don't believe any kind of row merging should affect this?

YannickEnrico_0-1712124571050.png

 

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 4 of 21

Cris-Ideas
Advisor
Advisor

How did you make those two top level assemblies?

 

Cris.

 

Cris,
https://simply.engineering
0 Likes
Message 5 of 21

johnsonshiue
Community Manager
Community Manager

Hi Yannick,

 

Let me clarify a bit. Inventor Instance Properties are instance-level overrides within the hosting assembly. For example, you have Asmb1 which contains two instances of Part1. The structure is like this Asmb1 -> Part1:1 and Part1:2.  Let's say you assign an IP called POSITION to each instance. Part1:1 (POSITION = North) and Part1:2 (POSITION = South). These properties are saved in Asmb1.

Now you place Asmb1 into Asmb0. It looks like this, Asmb0 -> Asmb1 -> Part1:1 and Part1:2. You cannot assign IP to Part1:1 and PArt1:2 from Asmb0. It is because Asmb0 isn't the hosting assembly of the two instance. Asmb1 is the hosting assembly. As a result, the IP values remain the same.

I think you are looking for Occurrence Properties (across levels), which isn't available in Inventor. As a distributed design system, each file manages its own properties and some properties of the immediate components, not across levels.

Many thanks!

 



Johnson Shiue (johnson.shiue@autodesk.com)
Software Test Engineer
Message 6 of 21

YannickEnrico
Advisor
Advisor

Hi @Cris-Ideas  - I created one assembly, constrained it. Due to customer changing from 2 identical vessels to ones that are rotated in relation to certain features I ended up creating Sub Assembly 1_V1 and _V2, and Sub Assembly 2_V1 and _V2

Assembly A references SubAssy1_V1 and SubAssy2_V1
Assembly B references SubAssy1_V2 and SubAssy2_V2

Both versions of SubAssy reference the same parts.


So looking at the BOM table within Assembly A or Assembly B parts only show the *exact same* parts and quantities

Now what I'm wondering about is editing an instance property in assembly_001 propagates it to assembly_002, despite them not referencing each other.

YannickEnrico_0-1712204843988.pngYannickEnrico_1-1712204921845.png

 

 

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 7 of 21

YannickEnrico
Advisor
Advisor

Hi @johnsonshiue 


So because my parts are placed in sub assemblies, I can't use instance properties in the main assembly?
That's a shame, since I'm using that to track 3.1 material certificates.

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 8 of 21

Cris-Ideas
Advisor
Advisor

This is strange.

I would think there is a way to overcome this problem somehow.

It is possible to manually override part QTY on assemlby level even for parts that are hosted in sub assemblies.

So it should also be possible to override other properties.

 

Just similar like you can override visibility state for any part in any assembly structure.

 

Perhaps a trivial question. But are you absolutely sure that your instance property is defined on the top level?

If it is it must be stored on top level and it must be independent from other files.

Each element in a assembly is an instance and as such it is possible to add custom parameters to it on this level. It must be.

 

It is however very hard to dig in to this problem without actual data structure.

 

Other thing you can explore is to define a parameter table in top level and associate selected part with some parameter you want. 

Than you can try to reference this table.

It would probably require adding some interface for editing. 

 

Cris.

Cris,
https://simply.engineering
0 Likes
Message 9 of 21

YannickEnrico
Advisor
Advisor

Hi @Cris-Ideas 

 

I'm aware it would be easier to understand and dig through with the actual data.

As you can see on the screenshot below I have three rows with the same part number signifying both instance properties and no row merging.

As for whether it's handled on the top level or not, I haven't even enabled parts list (parts only) on sub assemblies, and even so, my parts carry no custom iProperties that could interfere with this, so I am at a loss trying to understand how data flows from one assembly - *that has no reference to the other* - to the other.

I was merely trying to understand how "instance properties" is supposed to work, because what I'm experiencing is different from what I was expecting to experience.

Based on my understanding of @johnsonshiue 's contribution to the topic, it seems I cannot expect to handle instance properties on parts in a sub assembly from the main assembly

 

YannickEnrico_1-1712214837616.png

YannickEnrico_2-1712215233271.png

 

 

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 10 of 21

Cris-Ideas
Advisor
Advisor

@YannickEnrico 

OK.

but at what point did you create our instance parameter?

Was there any "demote" operation involved?

Did you copy those assemblies by: copying the files in windows explorer, saving copy as, copy and replace component or some other way?

 

You had 1 vessel at first. So I assume it is now hold in Sub assembly.  If so than you actually have top level assembly holding some sub assemblies that hold parts. So on top level you have two different vessels that use the same parts.

In such case parts are combined in Parts List and you can not have two different values for the same parameter for those parts coming from two vessels. 

In order to have different parameter for the same part that is placed in two vessels that then are shown in single top level assembly you have to approach this problem differently.

 

I understand that you do not want to copy and multiply parts that actually are the same part, that is rather reasonable.

 

What I do in such case i I create assembly that holds particular part and I set this assembly as Purchased, and I give assign it the same iProperties as the part has. 

Than I can make another such assembly with different name, that is a totally independent entity and can easily have some parameters different (color for example)

Than I can use this assemblies (proxy-parts) in other assemblies and they are than referenced independently in parts lists. 

And I am able to show, for example different part numbers, or codes for different versions (colors) of the sane actual part).

 

I admit I do not understand fully what you want to achieve, so it may be that I am giving you useless advice.

Could you give some more description in to your objectives. (there are obviously users that English is not their first language (like my self) so it is not always easy to get the full picture).

 

Cris.

Cris,
https://simply.engineering
0 Likes
Message 11 of 21

Cris-Ideas
Advisor
Advisor

it seems I cannot expect to handle instance properties on parts in a sub assembly from the main assembly

This may be true, as instance property is available on the level where this instance is.

 

In top level assembly, although these parts are instantiated, but those are totally different instances than those in sub assemblies.

In order to get what you are looing for I think you should try solution with "proxy-parts".

It works for me, and I think you will get the effect.

Instead of instances you will have access to actual files that store information independently and this information can be accessed from any level of the mode structure.

 

Cris.

Cris,
https://simply.engineering
0 Likes
Message 12 of 21

YannickEnrico
Advisor
Advisor

Hi @Cris-Ideas 


My workflow usually goes something like this:

1. model a multi body skeleton part

2. Create parts (make components from skeleton)

3. Demote parts to separate sub assemblies if that's relevant. In this case I did it to _1 and _2 for the inner and outer layer of the vessel (based on whether it's in media contact or not)

4. Start filling instance properties on the TOP LEVEL assembly.

Now, what happened when the customer discovered they didn't want two identical ones, I went to my original assembly and did the following:

1. (top level assembly) Save Copy As -001 and -002

2. (top level assembly) double click on sub assembly to edit in place -> Save copy as _V1 and _V2 for both sub assemblies.

3. Opened top level assembly -001 and replaced the sub assemblies with the _V1 ones

4. Opened top level assembly -002 and replaced the sub assemblies with the _V2 ones

5. Went to the new sub assemblies 1_V1, 2_V1 and 1_V2, 2_V2 and constrained them differently to suit the new requirements

So no changes happened to parts involved in the design. Only the two sub assemblies, of which I have two versions, were changed.

 

Now, at the point of *save copy as* I had already started filling instance properties because I had already bought some materials that I kept track of (fortunately it was all from the same batch, so it wasn't a hurdle keeping track of), and of course those instance properties stayed as they should.

I would expect in this scenario for the assemblies -001 and -002 to separate entirely, and any instance properties entered into one shouldn't go to the other; however, that is not what I'm seeing.

 

 


In conclusion: I have two top level assemblies that reference two sub assemblies each, and those sub assemblies reference all the same parts, but the sub assemblies are constrained differently.

I was expecting to be able to have INDEPENDENT instance properties on each top level assembly, but it appears I am not.

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 13 of 21

YannickEnrico
Advisor
Advisor

@Cris-Ideas wrote:

it seems I cannot expect to handle instance properties on parts in a sub assembly from the main assembly

This may be true, as instance property is available on the level where this instance is.


What's the point of the single parts BOM then?

Mind you, I'm not trying to push anything from the top level assembly to the parts or sub assemblies - quite the contrary.
I only want to read these properties on the top level.

If I were to implement both vessels in an in situ drawing, I would NOT expect to be able to pull the instance properties via that BOM either.

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 14 of 21

johnsonshiue
Community Manager
Community Manager

Hi Folks,

 

There is a technical challenge here. To retain the occurrence property, such properties will have to be tracked like the appearance override. Then the appearance override at each level has to be presented in the BOM table. It can be quite messy. Essentially, the particular property value depends where the component is consumed at what level.

I personally think such workflow is better suited for internal components (all component definitions are wrapped within one file). Unfortunately, Inventor does not fully support internal components yet (AnyCAD is sort of like internal components).

Many thanks!



Johnson Shiue (johnson.shiue@autodesk.com)
Software Test Engineer
0 Likes
Message 15 of 21

YannickEnrico
Advisor
Advisor

Hi @johnsonshiue 

 

Enabling single parts on the sub assemblies, I see the instance property has been pushed through to that.

That still doesn't explain why they transfer across top level assemblies, because the top level assemblies reference separate sub assemblies.

 

And I don't see the properties on the single parts?

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 16 of 21

YannickEnrico
Advisor
Advisor

Okay, so what I was trying to do with instance properties, was to keep track of 3.1 material certificates on an easily exportable BOM.

 

I can't do it with properties on the parts, because two identical parts may have been cut from different sheets.

 

Any suggestions on how to handle that, then?

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 17 of 21

Cris-Ideas
Advisor
Advisor

do like this:

1) make part (ipt) holding geometry

2) make PartAssembly1 and place your part in it.  Set following parameters and iproperties:

-set it to Purchased

- give it the same part number as your part.

- fill other properties (in stock number, etc.) as required to match your part properties

- define custom iproperty  MaterialCertificate

- fill value of MaterialCertificate as per your first vessel

3) Save another copy of PartAssembly1 as Part Assembly2. Make sure that it has same Part Number as Part. (this is automatically updated when copy is saved, so you either need to copy via windows explorer or update part no manually)

4) update MaeterialCertificate in Part Assembly 2 as per your second vessel

5) make Vessle Sub Assemblies 1 and 2, place PartAssemblies1 and 2 respectively

6) make top level assembly holding Vessel Sub Assembly 1 and 2

7) Activate PArts only BOM in top level

6) Add a custom proeprty column in BOM. give it the same name as your custom iProperty parameter MaterialCertificate.

7) Disable row merging. 

 

Now you have two "parts" in your top level with different Material Certificates, and still you only deal with single file to hold geometry.

 

Cris.

Cris,
https://simply.engineering
0 Likes
Message 18 of 21

johnsonshiue
Community Manager
Community Manager
Accepted solution

@YannickEnrico wrote:

Hi @johnsonshiue 

 

Enabling single parts on the sub assemblies, I see the instance property has been pushed through to that.

That still doesn't explain why they transfer across top level assemblies, because the top level assemblies reference separate sub assemblies.

 

And I don't see the properties on the single parts?


Hi Yannick,

 

The reason why IP propagates up to the top is because the BOM data is aggregated from the bottom (each iam file has a BOM). Though at the top-level, the IP can be seen and change, the change still goes back to the sub-level hosting the particular instances.

I think I understand what you want. You want Occurrence Properties, not Instance Properties. Unfortunately, Inventor does not support OP yet.

Many thanks!

 



Johnson Shiue (johnson.shiue@autodesk.com)
Software Test Engineer
Message 19 of 21

YannickEnrico
Advisor
Advisor

@johnsonshiue wrote:

@YannickEnrico wrote:

Hi @johnsonshiue 

 

Enabling single parts on the sub assemblies, I see the instance property has been pushed through to that.

That still doesn't explain why they transfer across top level assemblies, because the top level assemblies reference separate sub assemblies.

 

And I don't see the properties on the single parts?


Hi Yannick,

 

The reason why IP propagates up to the top is because the BOM data is aggregated from the bottom (each iam file has a BOM). Though at the top-level, the IP can be seen and change, the change still goes back to the sub-level hosting the particular instances.

I think I understand what you want. You want Occurrence Properties, not Instance Properties. Unfortunately, Inventor does not support OP yet.

Many thanks!

 


Hi @johnsonshiue 
Do you know if it's on the table to make it handle occurance properties?

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes
Message 20 of 21

YannickEnrico
Advisor
Advisor

Hi @Cris-Ideas 

 

Thanks for the suggestion. It goes against how I handle files and iProperties (for instance, I always use file name for the explicit purpose of avoiding anything related to the easily changeable part number), and as such I find it hard to implement.

Again, this topic was about my understanding of instance properties being corrected, not necessarily finding a solution.

_______________________________________________________________________________________
Intel Core i9-14900KF
64 GB DDR5 6000 MHz
2TB WD_BLACK
RTX A4000
------------------------------
Inventor 2026 Professional
0 Likes