Rules evaluating two clashing objects - Intergraph Smart 3D - Administration & Configuration

Intergraph Smart 3D Interference Checking

Language
English
Product
Intergraph Smart 3D
Subproduct
Interference Checking
Search by Category
Administration & Configuration
Smart 3D Version
12 (2018)

Evaluates two objects. Use these rules in the <IgnoreClashesBetweenObjects> section and in the <SetClashProperties> section to determine if the clash qualifies based on the criteria. See Configuration File Format.

The syntax and functionality of rules that evaluate two objects are similar to the rules that evaluate single objects, although the rules for evaluating two objects expect criteria that evaluates Object1 and Object2.

Rule Tag

Details

ByObjectType

Decision based on the Type for two objects (BOC User name)

Attributes

  • List1 - ObjectTypes in a comma-separated list

  • List2 - ObjectTypes in a comma-separated list

Example

For clashes that involve slabs and handrails:

<ByObjectType List1="Slab" List2="Handrails"/>

ByObjectTypeAndAspect

Decision based on ObjectType and Aspect of the two objects involved in the clash

Attributes

  • ObjectType1 - BOC username of object

  • ObjectType2 - BOC username of object

  • Aspect1 - clashing aspect of object

  • Aspect2 - clashing aspect of object

  • If ObjectType1 and ObjectType2 are identical, you can use ObjectTypes to consolidate the attributes

  • If Aspect1 and Aspect2 are identical, you can use Aspects to consolidate the attributes

Examples

  • Rule written using all required attributes:

    <ByObjectTypeAndAspect
    ObjectType1="Piping Welds" Aspect1="Maintenance"

    ObjectType2="Piping Welds" Aspect2="Maintenance"

  • Because both ObjectType (1 and 2) attributes are identical and both Aspect (1 and 2) attributes are identical in the above example, you can write the rule more concisely using the ObjectTypes and Aspects attributes:

    <ByObjectTypeAndAspect
    ObjectTypes="Piping Welds" Aspects="Maintenance"/>

ByName

Decision based on the two object Names

Attributes

  • Name1Equals/Name1Like - specify a matching value

  • Name2Equals/Name2Like - specify a matching value

  • Both attributes must be specified with a value to match

  • Equals requires an exact match

  • Like permits the use of wild cards

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

ByObjectPG

Decision based on the PG of two objects

Attributes

  • List1- PG names in a comma-separated list

  • List2 - PG names in a comma-separated list

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

  • RelationNavigationPath

Examples

For clashes between member parts where at least one member part is in the GHOST permission group:

<ByObjectPG List1="GHOST" List2="*"
LimitToObjectTypes="Member Part *"/>

BySystemPath, ByParentSystemPath, ByAssemblyPath, ByParentAssemblyPath

Decision based on two objects' system path, system hierarchy parent's system path, assembly path, or assembly hierarchy parent's assembly path

Attributes

  • Name1Equals/Name1Like - a matching value

  • Name2Equals/Name2Like - a matching value

  • Both attributes must be specified with a value to match

  • Equals requires an exact match

  • Like permits the use of wild cards

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • RelationNavigationPath

Example

For clashes between piles (member parts under a system named Piles) and foundations (footing, footing component, and slab under a system named Foundation):

<ByParentSystemPath
LimitToObjectTypes1="Member Part *"
LimitToObjectTypes2="Footing,Footing Component,
Slab"
Name1Like="*\Piles\*"
Name2Like="*\Foundation\*"/>

ByInterfaces

Decision based on a clash involving two objects that implement the specified interfaces according to the metadata

Attributes

  • List1 - interface names in a comma-separated list

  • List2 - interface names in a comma-separated list

You can use wild cards to specify these attributes

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

  • RelationNavigationPath

Example

For clashes involving welds and piping parts using an interface approach:

<ByInterfaces
List1="IJRtePipeWeld"
List2="IJRtePiping,IJRtePathGenPart"
LimitToObjectTypes1="Piping Welds"
LimitToObjectTypes2="Pipes, Piping *"/>

ByAttribute

Decision based on property values (one each) of two objects

  • You cannot use the ByAttributes rule in a scenario where two objects clash

  • To decide based on multiple properties, use ByRulesCombination with multiple ByAttribute rules

Attributes

  • Interface1 and Interface2 - the names of the interfaces that have the attributes

  • Attribute1 and Attribute2 - the attribute names in Smart 3D

  • Operator1 and Operator2 - defines the comparison between the value in the configuration file and the value on the Smart 3D object; you must use one of the symbols or the equivalent text listed below:

    Symbol

    Equivalent Text

    =

    EQ

    >

    GT

    >=

    GE

    <

    LT

    <=

    LE

    <>
    !=

    NE

    ~

    Like

    !~

    NOT Like

Because the greater-than (>) and less-than symbols (<) require an escape in XML, we recommend that you use the equivalent text (GT and LT)

  • Value1 and Value2- the values of the attributes to match; you can specify multiple values separated by a pipe symbol (|) for operators (EQ, NE, Like, or NOT Like)

  • For codelisted attributes, specify either the short string values or the codelist numbers (codelist numbers must be preceded by a colon ':')

  • You must specify units for united attributes

  • Tolerance1 and Tolerance2 - only applicable for numeric values; use with units if applicable, or use DB units in comparison

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

  • RelationNavigationPath

Examples

  • For clashes between imported slabs

    <ByAttribute LimitToObjectTypes="Slab"
    Interface1="IJUASlabGeneralType"
    Attribute1="Composition"
    Operator1="EQ" Value1="Imported_Slab"
    Interface2="IJUASlabGeneralType"
    Attribute2="Composition"
    Operator2="EQ" Value2="Imported_Slab"/>

  • For clashes between braces and slab, footings, and footing components

    <ByAttribute
    LimitToObjectTypes1="Member Part *"
    LimitToObjectTypes2="Slab, Footing, Footing
    Component"
    Interface1="ISPSMemberType"
    Attribute1="TypeCategory"
    Operator1="EQ" Value1="Brace"
    Interface2="*" Attribute2="*" Operator2="EQ"
    Value2="*"/>

  • For clashes between braces and beams, columns, and braces

    <ByAttribute
    Interface1="ISPSMemberType"
    Attribute1="TypeCategory"
    Operator1="EQ" Value1="Brace"
    Interface2="ISPSMemberType"
    Attribute2="TypeCategory" Operator2="EQ"
    Value2="Beam|Column|Brace"/>

ByR3DProject, ByR3DFile

Decision based on clash involving R3D objects based on the R3D project name or the R3D file name from which the object originated

Attributes

  • Name1Equals/Name1Like - a matching value of an R3D project name or an R3D file name

  • Name2Equals/Name2Like - a matching value of an R3D project name or an R3D file name

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

Examples

  • For clashes between R3D objects from R3DBuildings and R3DFacilities projects:

    <ByR3DProject Name1Equals="R3DBuildings" Name2Equals="R3DFacilities"/>

  • For clashes between R3D objects from R3D file named *doors.* and *doorframes.*:

    <ByR3DFile Name1Like="*doors.*" Name2Like="*doorframes.*"/>

ByCommonAttributeValues

Decision based on a clash involving two objects that have common attribute values for one or more given properties

Attributes

  • Interface1, Interface2, Interface3, and so forth - the names of the interfaces that correspond to Attribute1, Attribute2, Attribute3, and so forth

  • Attribute1, Attribute2, Attribute3, and so forth - the attribute names in Smart 3D

    You must use interfaces and attributes in pairs, for example, Interface1 and Attribute1, or Interface3 and Attribute3

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

  • RelationNavigationPath

Example

For clashes between individual members of stairs; for example, individual unconnected members with common attribute values identify a group of objects as a stair:

<ByCommonAttributeValues
ObjectTypesList="Member Part Linear, Member Part
Curve"

Interface1="IJUABuilding" Attribute1="BuildingID"
Interface2="IJUAStairsByPieces"
Attribute2="StairID"/>

ByCommonAncestor

Decision based on two objects with a common system ancestor or one object that shares the parent with another object.

Attribute

AncestorInterfaces - names of the interfaces to be evaluated by the object or the object's ancestor in the system hierarchy.

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

Example

Evaluates clashes between welds of the same pipeline:

<ByCommonAncestor
LimitToObjectTypes="Piping Welds"
AncestorInterfaces="IJPipelineSystem"/>

<ByCommonAncestor LimitToObjectTypes1="Equipment*" LimitToObjectTypes2="Member*" AncestorInterfaces="IJSmartEquipment"/>

Interconnected

Eliminates clashes between route parts connected by one intermediate part but clashing in different aspects; typically used for pipes that are adjacent to an elbow, tee, or branch component that clashes on an insulation aspect

Attributes

  • ObjectTypes - the object types to consider

  • ClashingAspect - the aspect to consider

Example

Qualifies clashes between interconnected parts in the insulation aspect for both pipes and ducts:

<Interconnected ObjectTypes="Pipes, Ducts"
ClashingAspect="Insulation"/>

RangeBoxesDoNotOverlapAfterTrimming and OrientedRangeBoxesDoNotOverlapAfterTrimming

Decision made by checking whether an object's range boxes still overlap after the range boxes shrink by a given tolerance

This rule is useful when a horizontal pipe slightly overlaps a steel part, and for similar configurations in other global directions.

Attributes

Trim1 and Trim2 - the tolerance to trim the range box (RangeBoxesDoNotOverlapAfterTrimming) or the oriented range box (OrientedRangeBoxesDoNotOverlapAfterTrimming)

Apply trim values to achieve the same effect as specifying Negative Clearance. This is useful when a pipe rests on or slightly overlaps a steel member underneath the pipe.

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

Examples

  • RangeBox - eliminates touching or slightly overlapping clashes between two objects in simple physical aspect, and clashes that involve the insulation aspect of piping, duct, or equipment parts with other objects, such as steel:

RangeBox implies the objects' extents along global X,Y,Z directions, and is bigger for objects in skewed directions (that is, objects that are not along a global X,Y,Z axis). Therefore, the first example is suited for situations where a horizontal pipe slightly overlaps a steel component, and similar configurations in other global directions.

<RangeBoxesDoNotOverlapAfterTrimming
Trim1="2mm" Trim2="2mm"
LimitToObjectTypes1="Pipes, Piping*"
LimitToObjectTypes2="Member Part *"/>

  • OrientedRangeBox - a tight box in any orientation that resolves clashes in skewed directions:

    <OrientedRangeBoxesDoNotOverlapAfterTrimming
    Trim1="2mm" Trim2="2mm"
    LimitToObjectTypes1="Pipes, Piping*"
    LimitToObjectTypes2="Member Part *"/>

  • Range does not typically include insulation. However, both RangeBox and OrientedRangeBox expand the simple physical range by insulation thickness all-around for piping, duct, and equipment parts. This expansion resolves small overlap clashes between piping, duct, and equipment insulation and other parts.

  • For other cases, RangeBox and OrientedRangeBox do not resolve clashes that involve non-simple physical aspects.

SlabPenetration

Decision made by checking if the clash situation involves an object that penetrates a slab

Attributes

  • SlabTypes - a comma-separated list of slab catalog part numbers

  • ObjectTypesList - a comma-separated list of object types that penetrate the slab

  • PipeNPDLessThanOrEqualTo - the NPD for penetrating pipe situation

  • MemberTypeCategoryList - a list of MemberType categories the software ignores when the software encounters a penetrating member part

Example

Ignores a clash that involves a grating slab penetrated by either a pipe less than three inches in diameter, a handrail, or a member part (column or brace type):

<SlabPenetration
SlabTypes="Grating"
ObjectTypesList="Pipes,Handrails,Member Part *"
PipeNPDLessThanOrEqualTo="3in"
MemberTypeCategoryList="Column,Brace"/>

WithinToleranceToMemberPartEnd

Decision made by checking if the clash involves a member part within a certain tolerance from the end of the member part

Attributes

  • Tolerance - maximum distance (the tolerance) between the member end and the clash

  • ObjectTypesList - limits the check to specific objects; '*' is permitted

  • MemberTypeCategoryList - list of MemberType categories

Example

Qualifies clashes that involve any objects with columns or braces within 10 inches from the part end:

<WithinToleranceToMemberPartEnd Tolerance="10in"
ObjectTypesList="*"
MemberTypeCategoryList="Column,Brace"/>

ByIndividualObjectRules

Decision based on a clash between two single object rules; you can combine different rule types under the ByIndividualObjectRules tag

  • You must use two rules that evaluate single objects under the ByIndividualObjectRules tag as shown below:

    <ByIndividualObjectRules>
    <Rule#1 Criteria attributes for Rule#1/>
    <Rule#2 Criteria attributes for Rule#2/>
    </ByIndividualObjectRules>

  • See Rules evaluating a single object

  • The ByIndividualObjectRules rule is evaluated when:

    • Rule#1 evaluates ObjectA and Rule#2 evaluates ObjectB,

      or

    • Rule#1 evaluates ObjectB and Rule#2 evaluates Object A

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

Example

Qualifies clashes between welds and sleeves:

<ByIndividualObjectRules
LimitToObjectTypes=
"Piping Welds, Piping Specialty Items">
<ByObjectType List="Piping Welds"/>
<ByInterfaces List="IJUASleeve"
LimitToObjectTypes="Piping Specialty Items"/>

</ByIndividualObjectRules>

ByRulesCombination

Decision based on combined rules that evaluate two clashing objects; the rule is evaluated if all of the combined rules are evaluated

  • The software automatically runs underlying sub rules, as shown in the following scenarios:

    • In one sub rule, object A and object B of a clash may evaluate the rule's part 1 and part 2 criteria, respectively

    • In another sub rule, object A and object B of a clash may evaluate the rule's part 2 and part 1 criteria, respectively

  • The software cannot force a match between the two sub rules with specific object references as shown in the above example; instead, use the LimitToObjectTypes criteria on each sub rule to evaluate the rule

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

  • ExcludeClashes

Example

Qualifies clashes between approved underground cable tray and approved underground equipment pits where both construction types are set to Existing to be reused in place:

<ByRulesCombination LimitToObjectTypes1="Cable Trays"
LimitToObjectTypes2="Equipment">

<ByObjectPG List1="Underground Cabletray"
List2="Underground Equipment"/>

<ByAttribute Interface1="IJConstructionInfo"

Attribute1="ConstructionType"

Operator1="EQ" Value1=":17"

Interface2="IJConstructionInfo"

Attribute2="ConstructionType"

Operator2="EQ" Value2=":17"/>

<ByAttribute

Interface1="IJDObject"

Attribute1="ApprovalStatus"

Operator1="EQ" Value1=":8"

Interface2="IJDObject"

Attribute2="ApprovalStatus"

Operator2="EQ" Value2=":8"/>

</ByRulesCombination>

UpdateModifiedClashStatus

Use this rule to update the clash status of the modified clash marker whenever there is a change in the clash marker type.

  • The UpdateModifiedClashStatus rule is used only for modified clashes not for newly created clashes.

  • If the new and existing clash marker types are same (For example, Severe to Severe and Clearance to Clearance), then this rule is applicable only if the location of the clash marker is changed.

Attributes

  • List1 – Specifies the clash status of the first object. Options available are Clearance, Optional, and Severe.

  • List2 – Specifies the clash status of the second object.

Control

  • LimitToObjectTypes

  • ExcludeObjectTypes

Examples

For evaluating the rule using a single clash marker type option:

<UpdateModifiedClashStatus

List1="Clearance" List2="Severe"/>

For evaluating the rule using multiple clash marker type options:

<UpdateModifiedClashStatus

List1="Clearance,Optional,Severe" List2="Severe"/>

For limiting the rule to particular objects:

<UpdateModifiedClashStatus

List1="Clearance,Optional,Severe"

List2="Severe" LimitToObjectTypes1="Pipes" LimitToObjectTypes2="Equipment"/>

For excluding particular objects from the rule:

<UpdateModifiedClashStatus

List1="Clearance,Optional,Severe"

List2="Severe" ExcludeObjectTypes1="Pipes" ExcludeObjectTypes2="Equipment"/>

For updating the Remarks attribute whenever this rule is used:

<UpdateModifiedClashStatus

List1="Severe"

List2="Clearance"

Remarks="Updated as part of UpdateModifiedClashStatus rule"/>