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();
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>(,);
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()==) 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();
} }

IfcDirection的更多相关文章

  1. IDL 的读写

    read_ifc代码如下: Write_ifc代码分析如下: (1)将数字转换为字符串的函数. function ntoc,a return,string(a,format='(g0)') end ( ...

  2. xBIM IFC 墙壁案例

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  3. 一堵墙IFC数据-wall.ifc

    这是一面墙的IFC数据内容 =====================================文档内容======================================= ISO-1 ...

  4. xBIM 基础05 3D墙案例

    系列目录    [已更新最新开发文章,点击查看详细]  使用编码的形式去生成一堵墙的模型需要做很多的工作. using System; using System.Collections.Generic ...

  5. xBIM之二:构建墙和门窗

    研究了两天,终于实现了利用xBIM自动输出墙和门窗 比较粗糙的源码如下: private void Form1_Load(object sender, EventArgs e) { //first c ...

  6. IfcAxis2Placement3D

    The IfcAxis2Placement3D provides location and orientations to place items in a three-dimensional spa ...

  7. IFC文件介绍

    IFC是一个数据交换标准, 用于不同系统交换和共享数据. IFC是采用EXPRESS语言定义的实体关系模型,由几百个实体对象组成.实体对象包括建筑要素如IfcWall,几何元素如IfcExtruded ...

  8. IfcAxis2Placement3D IFC构件的位置和方向

    IfcAxis2Placement3D定义了三维空间中物体的位置和方向,由三部分组成: The attribute Axis defines the Z direction, RefDirection ...

随机推荐

  1. h5 js复制 功能

    感谢 http://www.jq22.com/webqd6003 var copy1 = document.getElementById('copy1'); var copy2 = document. ...

  2. mysql设计规范和原则

    DB设计流程: 1,需求分析 2,ER设计 3,物理设计 需求分析的最佳实践是头脑风暴,把需求理解透彻.根据公司的现况和未来的发展,与pm一起来讨论. ER(EntiyRelation)设计阶段要确定 ...

  3. xadmin引入django-qiniu-storage七牛云存储图片

    一.注册七牛云账号: 1.注册并完成实名认证 2.创建公有存储空间 二.安装django-qiniu-storage: pip install django-qiniu-storage 安装djang ...

  4. docker 空间清理

    https://blog.csdn.net/qq_28001193/article/details/79555177 清理之后,重要的是找到原因,如上连接所示,其中一个占空间比较大的是日志文件,除了考 ...

  5. Trie Service

    Description Build tries from a list of <word, freq> pairs. Save top 10 for each node. Example ...

  6. LeetCode 911. Online Election

    原题链接在这里:https://leetcode.com/problems/online-election/ 题目: In an election, the i-th vote was cast fo ...

  7. cc2530中单片机的通用I/O接口

    cc2530中有21个输入/输出引脚. 这些引脚可以设置为通用I/O或者设置为外设I/O.(其实这里的外设还是不太懂到底指什么,网上说输入设备,但是通用I/O也可以输入啊,为什么要弄外设I/O?) 其 ...

  8. Git常用命令与入门

    Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制..git目录位于工作目录内.对于任何一个文件, ...

  9. Java算法考试笔记

    1.快速构建排列树: void BackTrace(int t){//排列树 if(t<N){//如果没有到叶子结点 for(int i=t;i<N;i++){ swap(x,t,i); ...

  10. DISCO Presents Discovery Channel Code Contest 2020 Qual题解

    传送门 \(A\) 咕咕 int x,y; int c[4]={0,300000,200000,100000}; int res; int main(){ cin>>x>>y; ...