IfcDirection

 The IfcDirection provides a direction in two or three dimensional space depending on the number of DirectionRatio's provided. The IfcDirection does not imply a vector length, and the direction ratios does not have to be normalized.

 

XSD Specification

<xs:element name="IfcDirection" type="ifc:IfcDirection" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
 <xs:complexType name="IfcDirection">
  <xs:complexContent>
   <xs:extension base="ifc:IfcGeometricRepresentationItem">
    <xs:attribute name="DirectionRatios" use="optional">
     <xs:simpleType>
      <xs:restriction>
       <xs:simpleType>
        <xs:list itemType="ifc:IfcReal"/>
       </xs:simpleType>
       <xs:minLength value="2"/>
       <xs:maxLength value="3"/>
      </xs:restriction>
     </xs:simpleType>
    </xs:attribute>
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>

 

EXPRESS Specification

ENTITY IfcDirection
 SUBTYPE OF (IfcGeometricRepresentationItem);
  DirectionRatios : LIST [2:3] OF IfcReal;
 DERIVE
  Dim : IfcDimensionCount := HIINDEX(DirectionRatios);
 WHERE
  MagnitudeGreaterZero : SIZEOF(QUERY(Tmp <* DirectionRatios | Tmp <> 0.0)) > 0;
END_ENTITY;

 

 

/* Generated By: IFC Tools Project EXPRESS TO JAVA COMPILER: Do not edit this file!! */
package com.vfsd.ifc2x3tc1;

public class IfcDirection extends IfcGeometricRepresentationItem implements IfcVectorOrDirection, ClassInterface, IfcOrientationSelect
{
    private static final String[] nonInverseAttributes = new String[]{"LIST<DOUBLE>"};
    private java.util.ArrayList<CloneableObject> stepParameter = null;
    private java.util.HashSet<ObjectChangeListener> listenerList = null;
    protected int stepLineNumber;
    /** DirectionRatios is an DEMANDED attribute - may not be null**/
    protected LIST<DOUBLE> DirectionRatios;
    /**
    * The default constructor.
    **/
    public IfcDirection(){}

    /**
    * Constructs a new IfcDirection object using the given parameters.
    *
    * @param DirectionRatios DEMANDED parameter of type LIST<DOUBLE> - may not be null.
    **/
    public IfcDirection(LIST<DOUBLE> DirectionRatios)
    {
        this.DirectionRatios = DirectionRatios;
        resolveInverses();
    }

    /**
     * This method initializes the IfcDirection object using the given parameters.
    *
    * @param DirectionRatios DEMANDED parameter of type LIST<DOUBLE> - may not be null.
    **/
    public void setParameters(LIST<DOUBLE> DirectionRatios)
    {
        this.DirectionRatios = DirectionRatios;
        resolveInverses();
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    @SuppressWarnings("unchecked")
    void initialize(java.util.ArrayList<CloneableObject> parameters)
    {
        this.DirectionRatios = (LIST<DOUBLE>) parameters.get(0);
        resolveInverses();
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    void destruct()
    {
         super.destruct();
        listenerList = null;
    }

    private void resolveInverses()
    {
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    String[] getNonInverseAttributeTypes()
    {
        return IfcDirection.nonInverseAttributes;    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    private java.util.HashSet<String> getRedefinedDerivedAttributeTypes()
    {
        java.util.HashSet<String> redefinedDerivedAttributes = new java.util.HashSet<String>();
        return redefinedDerivedAttributes;    }

    /**
 * This method returns the object IFC  STEP representation. This method is called by the IfcModel object to write IFC STEP files.
     *
     * @return the IFC STEP representation of this object
    **/
    public String getStepLine()
    {
        String stepString = new String("#"+this.stepLineNumber+"= ");
        stepString = stepString.concat("IFCDIRECTION(");
        if(getRedefinedDerivedAttributeTypes().contains("DirectionRatios")) stepString = stepString.concat("*);");
        else{
        if(this.DirectionRatios != null)        stepString = stepString.concat(((RootInterface)this.DirectionRatios).getStepParameter(DOUBLE.class.isInterface())+");");
        else        stepString = stepString.concat("$);");
        }
        return stepString;
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    public String getStepParameter(boolean isSelectType)
    {
        return "#" + this.stepLineNumber;
    }

    /**
     * This method returns the line number within a IFC  STEP representation. This method is called from other objects, where this one is referenced.
     *
     * @return the STEP line number
    **/
    public int getStepLineNumber()
    {
        return this.stepLineNumber;
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    void setStepLineNumber(int number)
    {
        this.stepLineNumber = number;
    }

    /**
    * This method sets the DirectionRatios attribute to the given value.
    *
    * @param DirectionRatios OPTIONAL value to set
    **/
    public void setDirectionRatios(LIST<DOUBLE> DirectionRatios)
    {
        this.DirectionRatios = DirectionRatios;
        fireChangeEvent();
    }

    /**
    * This method returns a copy of the list of the DirectionRatios attribute.
    *
    * @return a copy of the DirectionRatios list
    **/
    public LIST<DOUBLE> getDirectionRatios()
    {
        if(this.DirectionRatios != null)
            return new LIST<DOUBLE>(this.DirectionRatios);
        return null;
    }

    /**
    * This method adds an DOUBLE object to the DirectionRatios list.
    * @param DirectionRatios element to be appended to this list.
    **/
    public void addDirectionRatios(DOUBLE DirectionRatios)
    {
        if(this.DirectionRatios == null)
            this.DirectionRatios = new LIST<DOUBLE>();
        this.DirectionRatios.add(DirectionRatios);
        fireChangeEvent();
    }

    /**
    * This method adds a collection of DOUBLE objects to the DirectionRatios list.
    * @param DirectionRatios collection containing elements to be added to this list.
    **/
    public void addAllDirectionRatios(java.util.Collection<DOUBLE> DirectionRatios)
    {
        if(this.DirectionRatios == null)
            this.DirectionRatios = new LIST<DOUBLE>();
        this.DirectionRatios.addAll(DirectionRatios);
        fireChangeEvent();
    }

    /**
    * This method removes all elements from the DirectionRatios list.
    **/
    public void clearDirectionRatios()
    {
        if(this.DirectionRatios != null)
        {
            this.DirectionRatios.clear();
            fireChangeEvent();
        }
    }

    /**
    * This method removes an DOUBLE object from the DirectionRatios list.
    * @param DirectionRatios element to be removed from this list.
    **/
    public void removeDirectionRatios(DOUBLE DirectionRatios)
    {
        if(this.DirectionRatios != null)
        {
            this.DirectionRatios.remove(DirectionRatios);
            fireChangeEvent();
        }
    }

    /**
    * This method removes a collection of DOUBLE objects from the DirectionRatios list.
    * @param DirectionRatios collection containing elements to be removed from this list.
    **/
    public void removeAllDirectionRatios(java.util.Collection<DOUBLE> DirectionRatios)
    {
        if(this.DirectionRatios != null)
        {
            this.DirectionRatios.removeAll(DirectionRatios);
            fireChangeEvent();
        }
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    void setStepParameter(java.util.ArrayList<CloneableObject> parameter)
    {
        this.stepParameter = parameter;
    }

    /**
     * This method is used internally and should NOT be used for own purposes.
    **/
    java.util.ArrayList<CloneableObject> getStepParameter()
    {
        return this.stepParameter;
    }

    /**
     * This method registers an ObjectChangeListener to this object. An event is fired whenever one of its values was changed.
     * 
     *@param listener the listener to register
    **/
    public void addObjectChangeListener(ObjectChangeListener listener)
    {
        if (listenerList == null)    listenerList = new java.util.HashSet<ObjectChangeListener>(1,1);
        listenerList.add(listener);
    }

    /**
     * This method unregisters an ObjectChangeListener from this object.
     * 
     *@param listener the listener to unregister
    **/
    public void removeObjectChangeListener(ObjectChangeListener listener)
    {
        if (listenerList == null)    return;
        listenerList.remove(listener);
        if (listenerList.size()==0) listenerList = null;
    }

    /**
     * This method removes all currently registered ObjectChangeListeners from this object.
    **/
    public void removeAllObjectChangeListeners()
    {
        listenerList = null;
    }

    protected void fireChangeEvent()
    {
        if(listenerList == null) return;
        for(ObjectChangeListener listener : listenerList)
            listener.ifcModelObjectChange(this);
    }

    /**
     * This method clones the object (deep cloning).
     *
     * @return the cloned object
    **/
    @SuppressWarnings("unchecked")
    public Object clone()
    {
        IfcDirection ifcDirection = new IfcDirection();
        if(this.DirectionRatios != null)
            ifcDirection.setDirectionRatios((LIST<DOUBLE>)this.DirectionRatios.clone());
        return ifcDirection;
    }

    /**
     * This method copys the object as shallow copy (all referenced objects are remaining).
     *
     * @return the cloned object
    **/
    public Object shallowCopy()
    {
        IfcDirection ifcDirection = new IfcDirection();
        if(this.DirectionRatios != null)
            ifcDirection.setDirectionRatios(this.DirectionRatios);
        return ifcDirection;
    }

    /**
    * This method returns the objects standard description.
    *
    * @return the standard description
    **/
    public String toString()
    {
        return "#"+ this.getStepLineNumber() + " " + this.getClass().getSimpleName();
    }


}

 

posted @ 2019-11-29 19:10  西北逍遥  阅读(505)  评论(0编辑  收藏  举报