A client recently inquired about best practices on vendor supplied piping. The goal was to remove vendor supplied piping from the BOM and give those items a specific layer in isometric drawings. To accomplish this there should be a property that can be adjusted in the 3D model.
The first step to meeting this need is to create the property used to identify the supplier. To do this we need to jump into project setup and navigate to Plant 3D DWG Settings, Plant 3D Class Definitions, and select Piping and Equipment. Under properties hit the Add button and create a property that you can fill out to clarify what vendor is responsible for this component. This property should probably be a selection list or string. If you decide to create a selection list make sure the default value is set to blank.
Once the property is created we can now select items and set the values we need. The property I created is called Supplier.
Right now if I run my iso it should come out something like this:
We want the valve and the elbow to be changed to a custom layer, but we also need to keep an eye on our BOM. Right now my BOM is still going to include the two items I adjusted. I’ll also see that the vendor supplied items are not separated into their own line.
Once we have a property to use when sorting our items we will need to make sure Plant 3D is using that property.
To make sure Plant 3D can use the custom property we will need to modify the iso.atr file in the iso style’s folder.
Under BOM-ATTRIBUTES we will need to add the new property with the prefix “EngineeringItems.”
In my case the property I made was called Supplier, so I added the line “EngineeringItems.Supplier”
From here we have two goals:
Use this property to remove items from our BOM and use this property to determine what layer the item should be put on (when the value is set).
The fastest part is removing items with a set value (or specific values) from the BOM
To do this we need to modify the IsoConfig.xml. I have been using a program called FOXE to modify .xml files. For more details on FOXE check out the article Dave has. http://www.pdoteam.com/2012/08/editing-xml-files/
When you expand Data using the tree view there is something called Aggregated Lists
Each list is for a different type of table:
Materials is the basic BOM
The Shop and Field Materials are the Fabrication and Erection tables
Pipes I believe is cut pieces list
Welds for weld list, etc.
In my case I’m working with a basic BOM, so I’ll need to modify the filters used for my Materials list.
The original filter used for the Materials list is called ItemCodeNotNull
I may have been able to modify the filter, but I chose to copy it and make a new one.
The new filter I created was called SuperCoolBOM
Here is the original filter:
<Filter Name=”ItemCodeNotNull” Value=”NOT [ITEM-CODE] IS NULL” />
And here is my adjusted filter:
<Filter Name=”SuperCoolBOM” Value=”NOT [ITEM-CODE] IS NULL AND Supplier IS NULL” />
The adjusted filter will only show items that do not have any value set for the Supplier property.
If you do not keep the Supplier property blank by default, you might use a set value when there is not a vendor supplying the item. If that is the case using IS NULL wouldn’t help, because there would always be a value set for your property. Instead of using IS NULL, we could use a filter with a value of
“NOT [ITEM-CODE] IS NULL AND Supplier = ‘none’”
This would reject blank values from showing up in the BOM, but allow items set to “none” to show up.
If you wan to include null values too just add it with an OR argument like the example below
“NOT [ITEM-CODE] IS NULL AND (Supplier IS NULL OR Supplier = ‘none’)”
Make sure you use the parenthesis, because these will have a big effect on how the filter operates.
With those adjustments we are now finished removing vendor supplied parts from our BOM
As you can see the ball valve is removed from the list completely and one of the Elbows is unaccounted for, because these two items were set to the Supplier Aaron.
With our first goal complete we are ready to move on to the next change.
Our next goal is to adjust the layer used for these special items.
The layers used are based on the theme, however instead of trying to create a new theme we can instead create a new Layer Scheme in each theme.
If you expand Theme, Symbols, Layer Schemes you will find several categories of items. Each may have it’s own filter and layer, so we are going to make a new layer scheme to filter out specific Supplier values.
I created the Aaron Layer Scheme based off of the Fittings layer scheme.
This layer scheme needs to have a filter created for it as well as a layer.
Here is the Aaron Filter I am using:
<Filter Name=”Aaron” Value=”Supplier=’Aaron'” />
Next we need to exclude Supplier values from all of our other Layer Scheme filters. You may want to create new filters in case the existing ones are used for other parts of the IsoConfig.xml. We will also want to expand our other themes and check the filters used. Some filters may require adjusting, and we will likely need to add in our new Layer Scheme to the other themes.
Here is the filter I used for Fittings:
<Filter Name=”NotAaronNotPipeElbowTeeOrCross” Value=”Supplier <> ‘Aaron’ AND (NOT (Type = ‘Pipe’ OR Type = ‘Pipe-Fixed’ OR Type = ‘Elbow’ OR TYPE = ‘Tee’ OR Type = ‘Cross’ OR Type = ‘Bend’))” />
The <> is like <> or NOT.
Alternatively you can use this filter if you decide to make several different suppliers.
<Filter Name=”NotAaronNotPipeElbowTeeOrCross” Value=”Supplier IS NULL AND (NOT (Type = ‘Pipe’ OR Type = ‘Pipe-Fixed’ OR Type = ‘Elbow’ OR TYPE = ‘Tee’ OR Type = ‘Cross’ OR Type = ‘Bend’))” />
Once all the filters have been adjusted make sure the new layer has added to the title block.
With these changes made vendor supplied parts will now show up on their own specific layers.
Here is how our Iso would have generated before:
And here is how our Iso generates now:
With these two changes we can suppress items in the isometric BOM and set the layer used to stylize items using a custom property.