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. 【Nginx】使用certbot安装免费https证书使Nginx支持Https请求

    certbot官网:https://certbot.eff.org/lets-encrypt/centosrhel7-nginx 一.安装步骤 1)安装certbot,执行  sudo yum ins ...

  2. Linux 修改时区(PDT修改为CST)

    方法1: Linux 修改时区 本文链接:https://blog.csdn.net/Aritem/article/details/79213306 命令:tzselect 按照顺序依次输入5,9,1 ...

  3. seaborn(1)---画关联图

    将 Seaborn 提供的样式声明代码 sns.set() 放置在绘图前,就可以设置图像的样式 sns., color_codes=False, rc=None) context= 参数控制着默认的画 ...

  4. server 2012/2016上,任务管理器性能页面增加磁盘监控

    1.用管理员身份启动命令行 2.命令行中输入:diskperf -y 3.关闭之前打开的任务管理,重新打开,发现可爱的磁盘监视器出现了.

  5. Linux-导入已安装的Linux系统

    之前在安装过一个Linux系统,由于重装电脑需要将之前安装的系统重新移动到VMWare中,让Linux系统能够重新运行起来,这样也省去了每次重新安装系统的麻烦. 废话不多说,咱们直接看是如何做? 1) ...

  6. 追光的人对Echo,SkyReach的Beta产品测试报告

    所属课程 软件工程1916 作业要求 Beta冲刺博客汇总 团队名称 追光的人 作业目标 团队互测 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com/hen ...

  7. Nuxt.js 提供了两种发布部署应用的方式:服务端渲染应用部署 和 静态应用部署

    官方网址:https://zh.nuxtjs.org/guide/commands/#%E5%8F%91%E5%B8%83%E9%83%A8%E7%BD%B2

  8. IDEA创建Mybatis的配置文件---sqlMapConfig.xml

    Mybatis的配置文件不像Spring的配置文件,在Maven当中添加过依赖之后就可以在下面这个地方打开,需要自己去手动去编写配置文件,但是自己编写的话会记不住要引入的DTD,所以就需要自己创建一个 ...

  9. 使用viper 进行golang 应用的配置管理

    viper 是一个强大的golang 配置管理包,支持多种配置格式内容的读取,同时支持读取key/value 存储的数据 而且不只是读取内容 ,同时也包含了,配置的写入操作. 以下是一个简单的demo ...

  10. su与su -,sudo 的区别

    "sudo" , "su" , "su - " 区别: 一.sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用 ...